Cat's Eye Technologies
Cat's Eye Technologies is an independent esoteric programming language concern run by Chris Pressey.
It was established in 1995 in Winnipeg, Manitoba, Canada, originally as a custom software development and consulting outfit, serving several local clients.
As the years passed and Chris moved around the world and became more and more involved in programming language issues, Cat's Eye Technologies became less and less of a software consulting firm and more and more of a... a what? Whatever the hell it is now.
A sponsoring organization for experimental programming language development.
An aegis for the curation, and appreciation, of programming languages as art. Especially weird ones.
An excuse to refer to ourselves with a plural pronoun.
We'd call it a brand, but we'd feel awfully dirty afterwards.
We believe that, in an environment of rapidly changing requirements, maintainability of source code has the greatest effect on software quality, and that choice of programming language profoundly affects maintainability.
That is our official excuse for being interested in experimental programming languages. The real reason is perhaps more frivolous.
We also believe that publically-available source code and transparent development processes have an important civic and didactic role in modern society. For this reason, many of our software projects have been placed under open-source licenses, or have been placed into the public domain, and are stored in public repositories such as on GitHub.
Chris Pressey is an itinerant composer of esoteric programming languages and other objectionable constructions.
- Chris Pressey's Lingography
- Retrospective: Chris Pressey on Language Design
- Chris Pressey's Favourite Video Games
- Chris Pressey's Favourite Text Adventures
- Chris Pressey's Favourite Other Computer Games
While there is no hard and fast definition, an esoteric programming language, or "esolang", is a programming language intended to entertain, confuse, and otherwise blow your puny little mind. If that sometimes means butchering the definition of "programming language"... then so be it.
Esolangs are toy languages, if by "toy" you mean something like "Mainway product".
Esolangs are joke languages, if by "joke" you mean something like "Beethoven scherzo."
Esolangs are research languages, if by "research" you mean something like "Fear and Loathing in Las Vegas."
A comprehensive repository of information on esolangs can be found at the Esolang Wiki.
Some eminent esolangers include:
- Ben Olmstead, who Chris Pressey met once.
- zzo38, who is the only esolanger I know who has an entry in Urban Dictionary.
- Gerzon Kurz, whose website is p-nand-q.com.
- Jeffry Johnston, whose website used to be kidsquid.99k.org.
- Keymaker, whose website is yes, it's a program.
- many, many others. See esolangs.org.
For good measure, here is a classic esolang page: The Turing Tarpit.
It is somewhat interesting to see how the Open Source Definition views esolangs. Programs written in esolangs tend to be "deliberately obfuscated", and thus "not allowed." On the other hand, this is also presumably "the preferred form in which a programmer would modify the program." So it's debatable whether these programs can be OSI Certified or not. (In practice, though, almost all esolang implementations, and programs written in esolangs, are freely redistributable if not formally open-source or Public Domain.)
catseye.tc is Cat's Eye Technologies' website:
It is the official distribution channel of Cat's Eye Technologies' public offerings, and the Cat's Eye Technologies organization on GitHub is the development "side channel".
In years past, the Cat's Eye Technologies web site was hosted on various different domains. From most recently to least recently, they have been:
- and way back in the mists of time,
This frequent relocation of our web address was done specifically to please Phantom Hoover. (We're working on a brainfuck derivative, too, to make his joy complete. Stay tuned.)
catseye.tc may be considered our permanent domain name -- we're stuck
with it now that it's part of the Java namespaces of our products,
right? Feel free to make links to this site using URLs that begin with
www prefix is not required.
Our aim in making this website is that it both conforms to W3C standards and provides a reasonable user experience. Well, that used to be our aim, then HTML5 came along.
The site content is generated from a database called Chrysoberyl which consists mostly of Feedmark documents. These are lovingly statically analyzed, and then rendered with Markdown to produce HTML5 files.
- reference distribution: Chrysoberyl distribution
Chrysoberyl is an attempt to catalogue and curate all things produced by Cat's Eye Technologies, mainly its output of languages, automata, formats, tools, platforms, games, gewgaws, pictures, and music.
Chrysoberyl used to have all kinds of stuff in it, but we've recently reduced it to a set of Feedmark documents which contain only entries on things that were created by, or pertain directly to, Cat's Eye Technologies.
A complementary project is The Dossier, which is a set of free-form, curational writings on subjects outside of what Cat's Eye Technologies has produced.
- online @ catseye.tc
- reference distribution: The Dossier distribution
While Chrysoberyl is an attempt to catalogue and curate things related directly to Cat's Eye Technologies, The Dossier was created to curate things only indirectly related. It arose after an undesirable amount of stuff that was only indirectly related to Cat's Eye Technologies found its way into Chrysoberyl.
The Dossier is also oriented towards long-form, opinion-based writing, distinct from Chrysoberyl's short-and-trying-to-be-unbiased-blurb approach.
- online @ catseye.tc
- reference distribution: The Cannery distribution
While Chrysoberyl is an attempt to catalogue the things of Cat's Eye Technologies, there have also been attempts to preserve them. The first such attempt was The Cat's Eye Technologies Platform, which has seen 3 releases, and each released contained, at the point of time it was released, all the relevant output of Cat's Eye Technologies in the form of a single executable NetBSD system containing all that software.
At some point it became less clear that that approach was scalable, and the last release of The Platform is now out of date. Other approaches were explored.
The Cannery was created to preserve Cat's Eye Technologies' software products in Docker images.
While many are excited about Docker as a tool for deploying software, we're more interested in it as a tool for preserving software.
It's not fantastic in this role, but it has some upsides.
Docker makes it much easier to use software without "installing" it permanently; in Docker, a piece of software ships in an "image" which is in some sense entirely self-contained; the only required software to install first is Docker itself. From this image a running "container" can be started which is also entirely self-contained; it interacts with the rest of the system in a very limited, sandboxed way. The container can be stopped and the image deleted and no trace of the software remains.
Docker is thus a good way to package software with onerous requirements.
Hence in The Cannery we've made Docker images for those Cat's Eye Technologies products which have the most onerous requirements; kinoje in particular typically uses several other cumbrous softwares such as Jinja2 and POV-Ray.
Where exactly The Cannery is going, though, remains to be seen.