fat-dragon$ _

The Fat Dragon

Motivation and History

published on
One day when I was in the ninth grade, I was in my high school’s library and a ran across a Dungeons and Dragons acquaintance perched in front of an old Apple ][ computer. As I went to say hello, what was on his screen grabbed my attention: it was a “splash” graphic from Tradewars 2002; the one of the space station orbiting a planet, drawing line by line at 1200 BAUD on the raster display of the Apple //e in all its amber monochrome glory. Read More...

The Ghost of BBS Past: A Cautionary Tale

published on
Note: if you come to this article from the BBS community, please read it with an open mind. It is not exactly complimentary, but it is not intended as a slight. About twelve years ago, I read the “Voices in My Head” essay about the birth of MindVox by Patrick “Lord Digital” Kroupa. I revisited it recently and, as before, found it interesting in giving some insight into life on the “digital frontier” of the early BBS community. Read More...

Prototypes

published on
So we’ve gone into context a little bit; now let’s turn to technology. I suspect from here on out I’ll try and alternate technical posts with other sorts of free-form content. We’d like to gain some experience with the BBS concept, and the best way to do that is to prototype something. So let’s start to talk about prototypes. Ultimately, our goal is to build a BBS: but what exactly is a BBS anyway? Read More...

Languages

published on
So we’re on to building prototypes. To recap, we’re using an x86_64 host running OpenBSD as our target environment. Having selected this as our system of choice, we provided a solution for self-service account creation. Now we need to think about a coherent user-interface to tie things together. While the Unix shell is powerful, and you can have access to it if you’d like, lots of users aren’t going to like it. Read More...

Tools

published on
It has been said that “a good craftsman never blames his tools” for shoddy work. I dislike the “craftsman” analogy for programming; it seems to be promulgated mostly by consultants with, frankly, little track record of, you know, actually producing working software. I’ve written a little bit about this on my personal blog; others have written more. However, setting aside the craftsmanship analogy, there is still some truth to the adage: we select tools and if the work we produce with those tools is of poor quality, we can’t really blame the tools. Read More...

Goals

published on
I should state some goals up front. An explicit goal is to not do things that made sense for DOS, dial-ups, and Fido Technology Network (FTN)-style messaging, except as insofar as they still make sense for modern systems. Rather, the point is to deliberately do things differently. I say this because many of the things that made sense for those earlier systems were dictated by their limitations, but given that modern systems don’t have the same limitations, there is no reason to continue being bound by those decisions. Read More...

Unix

published on
Our system of choice is based on Unix. So let’s talk about Unix. History In the beginning was a batch mode system, the “Fortran Monitor System” for the IBM 709 computer at the MIT computation center. Experiments in timesharing where multiple users interactively shared the machine’s resources were done on the 709, which was was then upgraded to a 7090. IBM Flexowriter typewriters were connected to the 7090 for use as (hardcopy) terminals, and this begat the Compatible Timesharing System CTSS (“compatible” because it co-existed with the FORTRAN monitor), which spent most of its life under the auspices of MIT’s project MAC. Read More...

Terminals

published on
I’d like to talk a little bit about terminals, ANSI command sequences and character sets. Terminals In the early days of computers, before the rise of microcomputers, most machines were either batch-oriented with no real “console” for general use. Later, most computers were timesharing machines that were designed to be accessed remotely via serial “terminals”. The first terminals were hardcopy: they printed directly onto scrolls of paper as opposed to a screen. Read More...

Programming the Unix TTY Abstraction

published on
Let’s talk about how Unix handles input and output, and do some programming. As I discussed in the post on terminals, early Unix system used repurposed electro-mechanical hardcopy teletypewriters as terminals. The user sat in front of one of these, typed on it, and the characters s/he entered were transmitted to the host computer (running Unix, of course; the computer in this case being either a PDP-7 or a PDP-11). Read More...

Configuration and JSON5

published on
Now we have some basic infrastructure: We know what sort of system we’re running on (Unix) We know how to talk to users (the TTY abstraction) We know what programming language we’re using (SML) But we still don’t have a BBS. What do we need? Things like menus and so forth, certainly, but these things need to be configured somehow. How do we go about doing this? Read More...