Blog

  • Here Lie the Secrets of the Visitors of Green-Wood Cemetery

    Sophie Calle installation of "Here Lie the Secrets of the Visitors of Green-Wood Cemetery," 2017. A obelisk with a box with a slot for paper beneath it.

    Y and I have walked pasted the hill where this monument is more times than we can count since moving next door to Green-Wood Cemetery two years ago, but we never looked at Sophie Calle’s 2017 art installation closely until a few days ago. It’s an obelisk inscribed with the words, “Here Lie the Secrets of the Visitors of Green-Wood Cemetery.” Beneath the obelisk is a stone box with a slot big enough to slide an envelope through. The idea is for visitors to write secrets on a piece of paper and then slide them into the slot. We could see through the slot that the box was full of papers, full of secrets. Information about the installation is here, and where it is located in the cemetery can be found on Google Maps here.

  • Site Clean-Up Update and Organization to Surface Information Better

    Anthropomorphic cat computer technician standing in front of a vintage mainframe computer. Image created with Stable Diffusion.

    As I wrote about two weeks ago, I realized that the blog side of dynamicsubspace.net needed a serious cleaning to improve its information architecture. There were numerous posts with dead links as well as removed video and images that erased the context and purpose of the page. There were posts lacking relevance to what I wanted to use the site for. There were posts that had not received any views in over 10 years. And there was the issue of my poorly thought out categories and the related issue of tag proliferation.

    Since that post, I’ve whittled the categories down to 28 from 30, slashed the tags to 187 from 1,300, and removed 234 posts from just over 1,600 (making yesterday’s post the new post number 1,400). Also, I searched for posts by keywords and re-applied Categories and Tags to help relevant information surface easier through the Categories and Tag clouds in the right sidebar and the relevant posts shared at the bottom of each post (when you click through the title or land on a page through a search engine).

    These principles that I’ve learned should apply to any personal website:

    • When initially developing your site, take the time to write up a plan that includes its purpose and goals, a list of categories that encompass the kinds of writing that support your your site’s purpose and goals, and a list of possible tags that give granular detail to your categories (knowing these will increase over time).
    • Review your posts manually and using tools like Google Search Console to search for deadwood, such as posts with dead links, out of date or irrelevant information, removed embedded content hosted elsewhere, etc. If those posts are cross-linked on other posts or pages, you will need to track those down and remove the links.
    • Review your posts’ Categories and Tags. If your Categories change, they might need to be reapplied to some posts. And with your tags, new tags that have relevance to older content should be applied to help build connections and surface that content for your visitors.
    • Don’t be afraid to delete. It’s your site, so you get to make the executive decisions about what the site should offer your audience. Old, outdated, broken, and no longer useful information might be choking your audience’s access to the information that your site is providing.
    • If you keep your site’s posts relevant and labelled appropriately, you can help your visitors discover the information they are looking for that you provide.
  • Kant Generator Pro 1.3.1, a Modular Text Generator Originally Made to Create Psuedo-Kantian Philosophical Writing

    Kant Generator Pro 1.3.1 folder and icon group on Macintosh System 7.5.5

    Continuing my exploration of non-artificial intelligence (non-AI) programs that can generate images (see KPT Bryce and Evolvotron) and text (see Electric Poet 1.6), I discovered this really innovative piece of text generating software by Mark Pilgrim called Kant Generator Pro 1.3.1 for Macintosh 68k computers.

    The Kant Generator Pro folder, which includes the Kant Generator Pro application, Program Notes file, and folders for its text generating modules and scripting, is only 560K. The Kant Generator Pro application is 176K and it has a suggested RAM size of 1,024K. The copy that I downloaded from Macintosh Garden here had the minimum RAM size set at 512K and the Preferred size set to 11,024K.

    According to the program’s built-in Help (shown in a screenshot down the page):

    Kant Generator Pro was originally designed to generate text that vaguely resembles Immanuel Kant's Critique of Pure Reason, a brilliant and revolutionary piece of philosophical writing which, for some time now, has been serving as the fourth leg of my wobbly refrigerator. It has since been expanded to allow you to generate anything you like. Several modules are include with this program which can create anything from thank you notes to excuses for being late to work. You can also design your own modules with the full-featured module editor. 

    And on a saved copy of Pilgrim’s personal website from 21 Dec. 1996, he writes the following about Kant Generator Pro:

    Purpose: to generate pseudo-Kantian philosophy based on Kant's vocabulary and sentence structure in the "Critique of Pure Reason". Anyone who has been subjected to Kant (voluntarily or otherwise) will appreciate the humor in the gibberish this program outputs. Also includes a module editor so you can create your own generation modules.
    
    Kant Generator is quickly becoming my most popular program (although it is still in third place behind Startup Screen Picker and Shutdown FX), especially among philosophy students, graduates, and professors. When I showed it (off) to my professor for my Kant course, he immediately started describing something he had written years ago to achieve a similar result, though by a completely different method. Other professors from across the country have praised it, saying they will use it in their introductory philosophy courses to 'stimulate interest in philosophy'. I guess every little bit helps.
    
    I am slowly but steadily adding more modules to Kant Generator Pro. Version 1.1 added a Husserl module, as well as "thank you" note module (which occurred to me while procrastinating writing my Christmas thank you notes). Version 1.2 added an "excuses" module, written by Mike W. Miller. Version 1.3 added a Swedish Kant module, which is just the original Kant module with all the references and instantiations converted into Swedish Chef talk. (Yes, I used the code from Chef, and yes, I automated the process to cycle through all the instantiations and convert them, and no, you can't have the code. Just what we need is people running around converting all their KGP modules to Swedish Chef, or WAREZ, or Fudd...) Version 1.3 also added scripting support; anyone who wants to set up a WWW page and call Kant Generator Pro with a CGI interface through AppleScript has my permission as long as you send me your CGI interfacing code.
    
    It's very exciting to have other people writing modules for Kant Generator Pro, if nothing else because it means I don't have to do anything for the program to keep improving. Suggestions for future philosopher modules (or anything else) are always appreciated, although I am reluctant to write modules of philosophers I haven't studied myself. Satire is the sincerest form of flattery, but also the most difficult... 

    The source code for Kant Generator Pro is also available bundled with the application in the Info-Mac repository here.

    Below, I’ll annotate screenshots of the application running on an installation of Macintosh System Software 7.5.5 on the PPC emulator SheepShaver hosted by Debian 12 Bookworm with the Xfce Haiku Alpha window theme active.

    Kant Generator Pro for Macintosh, Composing Window after launch

    After opening Kant Generator Pro, the user is presented with a text entry window much like in any text or word processing software. One can enter text, but to have the program generate text, one needs to use the menus: first, to select the text generation module from the Options menu, and then, to select from the type of text to generate from the Insert menu.

    Kant Generator Pro for Macintosh, Apple menu

    Clicking on the Apple menu gives you options for About Kant Generator Pro, Other products, and Help.

    Kant Generator Pro for Macintosh, About window

    Opening the About window from the Apple menu features a scrolling credits and copyright notice.

    Kant Generator Pro for Macintosh, Apple menu > Help

    Selecting Help from the Apple menu provides lots of useful information about how to use Kant Generator Pro to generate text, how to edit the modules that it uses for text generation, and technical information about the design of the program.

    Kant Generator Pro for Macintosh, Apple menu > Help > Editor > Getting Started

    Choosing Editor > Getting Started on the Help window shows the information displayed above. Like Electric Poet, which I wrote about yesterday here, Kant Generator Pro relies on randomness, but unlike Electric Poet, Kant Generator Pro relies on more structure in building relationships between words and strings of text by editing a given Module (like Electric Poet’s Library). But where Kant Generator Pro gets really interesting is in how the responses can be engineered while editing the Module to reference and nest references within references.

    Kant Generator Pro for Macintosh, File menu

    The File menu gives you access to basic file operations.

    Kant Generator Pro for Macintosh, Edit menu

    The Edit menu has basic edit operations.

    Kant Generator Pro for Macintosh, Options menu

    The Options menu controls Kant Generator Pro’s primary feature–the Module used for text generation, but it also gives the user options for how fast it generates text, whether music is played or not while generating text, and to speak the generated text a voice with Apple’s Text-to-Speech technology.

    Kant Generator Pro for Macintosh, Options > Modules

    In the Options menu > Modules, the user chooses the text generator module to use. The Program Notes file (dated 26 Jun. 1995) included with the application describes the included modules:

    Kant Generator Pro has the built-in capability to generate enormous amounts of Kantian gibberish, but if you'd like to play with generating your own text, it also lets you create, edit, and use external modules.  There are several modules included in this release:
    
    Kant: this is exactly the same as the built-in Kant module, except that you can edit it.  The most general reference is &section.
    
    Swedish Kant: this is the same as the Kant module, except that all references names and text have been converted to mock Swedish Chef (as featured in my program Dialectic, which should be available wherever you got this package).  The most general reference is &secshun.
    
    Husserl: a module which emulates Edmund Husserl, a 20th-century phenomenologist.  The most general reference is &section.
    
    Thank You: a module which generates thank-you notes for all occasions.  The most general reference is &thank-you-note.
    
    Excuses, excuses: a module which generates for excuses explaining exactly why you can't come to work.  The most general reference is &Yet-Another-Excuse.  Written by Mike W. Miller.
    
    Math: a module which generates algebraic equations using +, -, *, /, parentheses, and three variables X, Y, and Z.  The most general reference is &term.  Written by David Scheidt (the same friend who discovered that he had 19 copies of the GPL).
    
    Palindrome: a modules which generates palindromes (strings which spell the same backwards and forwards).  The most general (and only) reference is &palindrome.  Written by David Scheidt.
    
    Pascal: a module which generates syntactically correct statements in the Pascal programming language.  The most general reference is &pstate.  Written by David Scheidt.
    
    Parentheses: a module which generates strings of balanced parentheses.  The most general reference is &balanced-parens.  Written by David Scheidt.
    
    Syntax test: this is a sample module which gives examples of the different forms of syntax which Kant Generator Pro can deal with.  All the references are relevant, but you won't get much out of them unless you look at them in the module editor first.
    
    If you'd like to create your own modules, poking around with these should be enough to get you started.  There are several pages of help in the Kant Generator Pro application which talk about building modules, and I also support balloon help for all the menus.  If you're still confused, drop me a line (my e-mail address is in the application's help section) and I'll try to help.
    Kant Generator Pro for Macintosh, Options > Music

    The Options menu > Music has options for Always, Only while generating, and Never.

    Kant Generator Pro for Macintosh, Options > Speech menu

    The Options menu > Speech selection pulls available voices from Apple’s Text-to-Speech (if installed on the Macintosh) to give users an opportunity to have the generated text read aloud.

    Kant Generator Pro for Macintosh, Search menu

    The Search menu gives users an easy way to find and replace text in the text generation window (but not the Editor window shown further below).

    The Insert menu changes based on which Module the user selects after opening Kant Generator Pro. This menu is what directs Kant Generator Pro to generate text based on the text corpus and engineered relationships in the Module. Kant Generator Pro uses randomness to piece together options within the corpus and those established relationships to string words together into phrases, sentences, paragraphs, and sections. The above options in the Insert menu are for the Kant Module.

    Kant Generator Pro for Macintosh, Insert menu

    The Insert menu options shown above are for the Thank You Module.

    Kant Generator Pro for Macintosh, Editor menu

    The Editor menu gives options to create a new module or open a module in the Editor window.

    Kant Generator Pro for Macintosh, Editor window

    The Editor window for a Module is where the end user can construct new References (top pane) and Instantiations (lower pane). You can see in the lower pane how References string together other References and Instantiations within References to give the generated text structure.

    Kant Generator Pro for Macintosh, Windows menu

    The Window menu allows the user to switch between multiple open files in different windows.

    Kant Generator Pro for Macintosh, Kant module | Insert > sentence

    Using the Kant Module, I used the application to generate the sentence above.

    Kant Generator Pro for Macintosh, Excuses module | Insert > sentence

    Using the Excuses, excuses Module, I used the program to generate the above outlandish excuse.

    Kant Generator Pro for Macintosh, Thank You module | Insert > paragraph

    Finally, using the Thank You Module, I generated the rather strange gift thank you.

    Like Electric Poet and large language model (LLM) artificial intelligence today, there is some trial-and-error involved. Electric Poet and Kant Generator Pro rely on a corpus of text, a system of relationships, and randomness to select what word or phrase goes next given a set of rules. In a sense, LLMs aren’t that much different except in scale. Based on a given LLM’s training, the relationships between words (or tokens) are far more complex. The hidden layers of an LLM construct relationships that are not simply 1-to-1. Analogous to neurons in our brains, the connections and weights for each connection between tokens are vast and labyrinthine.

    Nevertheless, I can imagine Electric Poet and Kant Generator Pro being used today–over 25 years after being first developed in the latter’s case–as a tool to help students think about how text generation can work in a very simplified manner. This can be paired with sentence diagramming of some of their own writing, which can be duplicated within Kant Generator Pro as a “Me” Module that can reproduce one’s own writing. Then, students can advance to more complicated topics with how LLMs are trained on big data to create models that are magnitudes more sophisticated than their Library for Electric Poet or Module for Kant Generator Pro. Throughout the process, an important reminded needs to be reinforced–there is no intelligence in these Macintosh programs or LLMs as they currently exist. The old and the new generate text based on rules applied to models–the former being simple and the latter being much more complex, but in both cases not having awareness or self-direction. Though, it seems like we are going in the direction of self-awareness and self-direction far more quickly than seems safe to me.

  • Electric Poet 1.6, a Macintosh Poetry Generator Program

    Electric Poet 1.6 for Macintosh, Icon Group

    Like I’ve written before about image generation software such as KPT Bryce and Evolvotron, which employ fractals instead of artificial intelligence (AI) to generate landscapes and abstract images respectively, there are also text generating programs that use a variety of coding tricks to string words together in a far less complex manner than those used by large language model (LLM) AI systems today. Nevertheless, these precursors to generative AI deserve our attention to explore how they work and what they might have been and still used for.

    One such text generating program is Electric Poet 1.6 by Niklas Frykholm. It is a program that is only 48K in size, uses 600K of RAM, and is built to run on 68K-based Macintosh computers. For testing and creating the screenshots below, I used SheepShaver running System Software 7.5.5.

    In his abstract for the Info-Mac Archive (available in a viewable format here or as a part of the entire Info-Mac archive here), Frykholm writes, “Electric Poet can use an ordinary text file as a mould for creating its own litterary [sic] works. This works best with abstract poetry where it’s sometimes hard to tell real from bogus.”

    On 28 Sept. 1996 on his personal website, he writes, “Electric Poet is a fusion between my interest in computers and my interest in poetry. It is an attempt to write a program, capable of creating its own literary works. The Electric Poet takes the works of a biologic poet (as a TEXT-file) and rearranges them in a random but controlled manner. Heres a poem written by the program:

    often
    and closer to the chasm
    until you still have been squeezed by the mysterious event
    it showed clearly for the trouble
    and the progress
    about my desktop”

    And according to Frykholm’s “Technical Notes” on the program’s About window, “The method the computer uses for generating text is simple and requires little or no intelligence. When the computer converts a text to a library it creates for each word in the text a list of the words that (at different places in the text) follow that word.”

    “When the text is to be created, the computer starts with a certain word. It then chooses a word at random from the list of words that could follow the world. After that it chooses a word at random from the list of words following that word, and so on . . .”

    Essentially, Electric Poet is a clever piece of software that uses word relationships within a given text to create text based on random selections within that set of relationships.

    Electric Poet 1.6 for Macintosh, Program's "The Poetry" window

    After double clicking on Electric Poet 1.6 in the icon group shown at the top of the page, the program presents “The Poetry” window with a blinking cursor. To have the program generate poetry, the user needs to open a Library from the File menu and then choose “Generate Text” from the Poet menu.

    Electric Poet 1.6 for Macintosh, About Window > Credits

    Opening the “About Electric Poet” from the Apple menu gives the user a super helpful set of tabs that gives you information for registering the shareware program, help using the software, an explanation of the menu items, and technical notes about how the program works to generate text.

    Electric Poet 1.6 for Macintosh, About Window > Help

    The About Electric Poet’s Help tab breaks down what the user needs to do so that the program generates text. The first step is to “install” or open a Library. While Electric Poet comes with a sample Library based on the script for the film Star Wars, most users would probably want to create their own Library, which is easy enough to do. Once the Library is created and loaded, Electric Poet can then generate text from the Poet menu.

    Electric Poet 1.6 for Macintosh, About Window > The Menus

    The About Electric Poet’s The Menu tab gives further explanation about what each menu option does in the program.

    Electric Poet 1.6 for Macintosh, About Window > Technical Notes

    The About Electric Poet’s Technical Notes provides details about how it uses lists of words and the words that follow immediately after those words as a corpus of random selections linked to adjacent words. This is the magic that makes this program generate text. It uses lists of adjacent words and random selection to thread together sentences and phrases.

    Electric Poet 1.6 for Macintosh, File menu options

    To get started with Electric Poet, the File menu gives you access to opening a Library or creating a Library from “TEXT to Library.” It’s important to note that you need to have your text file in Teach Text format before attempting to create your own Library. I discovered that when opening a raw text file the program would create a list of words (as it would normally when creating a Library), but then the program would lock up and while I could still move the mouse, I could no longer use the menu, switch programs, or activate the Finder. I would have to kill the SheepShaver process on Debian and relaunch. I observed this same behavior when running Electric Poet on the 68k emulator Basilisk II.

    To avoid this problem, open your raw text file in BBEdit or another full-featured text editor (if it is larger than 32K–the Teach Text limit), copy an excerpt to the Clipboard, and then go into Teach Text, paste the text, and save it as a file. Then, use “TEXT to Library” in Electric Poet to create a Library from that Teach Text-saved file.

    Electric Poet 1.6 for Macintosh, Poet menu options

    Once you’ve opened your Library file, you can now use the Poet menu to “Generate Text.”

    Electric Poet 1.6 for Macintosh, Poet menu > Generate Text window

    The “Generate Text” menu option presents you with these controls before generating some text in “The Poetry” window. It allows you to choose how many words to generate and the option to begin with a random word or a specific word. If you choose a specific word, bear in mind that it is case sensitive. For example, I tried beginning with “Cyberspace,” but the word was not found in the Library. I tried with “cyberspace” and it generated text as shown below.

    Electric Poet 1.6 for Macintosh, Output in The Poetry window

    Above, is a sample of text generated from “The Shopping Expedition,” the third chapter of William Gibson’s Neuromancer (1984). This example is just one run. Subsequent runs will yield very different results. In this regard, it is like using Stable Diffusion or LLaMA in that many iterations are often required to generate an output that is desired by the end user.

    Soon, I’ll post about Kant Generator Pro, another Macintosh text generator program that creates pseudo-sense/technobabble text (writing like the philosopher Kant) as well as form generated writing, such as thank you notes. The form generated writing that Kant Generator Pro can do is aligned with one of the kinds of writing large language models are supposed to be able to help us with–emails, follow-ups, etc.

  • University of Pittsburgh’s Cathedral of Learning

    Cathedral of Learning building at the University of Pittsburgh in 2010, photo taken from a distance.

    In 2010, Y and I went on a day trip to Pittsburgh to look around before going to Ikea to pick up some new furniture. My favorite place in Pittsburgh is the Cathedral of Learning at the University of Pittsburgh, which I made use of when I lived there, so we made that one stop on our itinerary.

    From a distance, it is an easy to see landmark for getting around the University of Pittsburgh campus.

    Cathedral of Learning at the University of Pittsburgh, photo taken at its base near the entrance.

    Standing at its entrance, the building’s magnitude is unavoidable. And, to think that this gigantic building–the second tallest educational building in the world–is dedicated to learning.

    Interior of the Cathedral of Learning at the University of Pittsburgh.

    It’s interior first floor study space is equally impressive. This cavernous space lends itself to individual and collaborative work.

    From an upper floor, you can look east to see Carnegie Mellon University.

    Sitting in the big chair in the study area of the Cathedral of Learning at the University of Pittsburgh.

    Before leaving, Y took a photo of me sitting in one of the big chairs in the study area on the first floor of the Cathedral of Learning.

    I think that all universities should invest in basic studying and learning spaces where students can work individually and together. It can be something as architecturally impressive as the Cathedral of Learning, or it could be something designed around sustainability and efficiencies such as Georgia Tech’s Clough Undergraduate Learning Commons. Whatever form it takes, it should center on students and their needs whether they live on campus or commute. Essentially, students need space to study, work, and collaborate outside of the classroom.