Introduction
Introduction Statistics Contact Development Disclaimer Help
About
------------------------------------------------------------
About me
------------------------------------------------------------
I’m Christopher Williams. I’m your typical computer nerd.
I’ve been using Gopher since the end of 2024[1]. After
2025 began, I started developing software for Gopher: a
server (see below), an Asciidoctor text converter (for
nicely-formatted text files!), phlog posting scripts, etc.
(Developing your own server or phlog platform seems to be a
rite of passage in Gopherland.)
[1] I’d actually heard of it a couple years earlier but
browsed it only a little bit at the time.
------------------------------------------------------------
About this site
------------------------------------------------------------
This site is a personal project of mine that I created for
fun (but not profit). I plan to add content from time to
time that I find interesting.
You can reach this site on both Gopher and the Web (the Web
site is a proxied version of the Gopher hole, in fact).
------------------------------------------------------------
About this server
------------------------------------------------------------
As of 2025-02-11, this hole is running on an experimental
Gopher server that I’m developing. I plan to release its
source once it’s in a reasonably stable state.
This server can run CGI scripts, and I’ve been writing
simple CGIs using little more than sh, awk, sed etc. It
amazes me how far you can go with just Unix text processing
commands.
As of June 2025, this site is also using an experimental
Web-to-Gopher proxy to provide HTTP access and stunnel on
top of that to provide HTTPS.
In case you’re curious, here’s a diagram of my site’s
architecture:
_______________ _____________
| | | |
| Gopher client | | Web browser |--HTTPS--.
|_______________| |_____________| |
| | ____v____
| | | |
| | | stunnel |
| HTTP |_________|
| | |
| | ,----HTTP----'
| | |
Gopher ________v___v________
| | |
| | Web-to-Gopher proxy |
| |_____________________|
| |
| ,-----Gopher-----'
| |
_____v___v_____
| |
| Gopher server |
|_______________|
|
Magic
|
v
This server is currently running on an under-$2/month VPS[2]
that I found around 2019 to use for various purposes. I
highly recommend both LowEndBox and RackNerd for good deals
on VPSes (and no, I’m not paid to say that).
[2] https://lowendbox.com/blog/2-usd-vps-cheap-vps-under-2-month/
------------------------------------------------------------
About the domain asciz.com
------------------------------------------------------------
At the end of March and the beginning of April, 2025, I got
on a domain hunting kick again. I did that once before,
several years ago, for the purpose of buying and reselling
domains for a profit. I think I managed to sell one domain
for a profit, but I probably lost a bit of money overall
with all of the other domains I registered and let expire.
Anyway, I digress.
This time I looked at any available five-letter domain
following various patterns—CVCVC, VCVCV, pronounceable
English-like words using an ngram-based word generator
that I wrote, etc.—and I found asciz.com among the litter
(sitting next to all the ‘abfoo.com’s and ‘ednev.com’s).
Being a longtime assembly programmer, I immediately
recognized its meaning.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
`.asciz` is a common assembler directive to insert
a string of characters followed by a zero byte (the
‘z’ in ‘asciz’). This type of string, known as a
“null-terminated string”, is also used in languages like
C.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
So I registered asciz.com. I’m tickled pink to have a short
(read: fairly rare) domain that actually means something.
------------------------------------------------------------
About that silly "since 1996" tagline
------------------------------------------------------------
I started learning C in or around 1996. Shortly afterwards
I also started learning Z80 assembly language for the
TI-86 graphing calculator (which also uses null-terminated
strings).
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
The TI-86 supports programming machine code (in
hexadecimal octets) on the calculator itself, and I
actually started playing with that before using a
proper assembler. I still remember, nearly 30 years
later, using `C9` for `ret` and `CD YY XX` for `call
XXYY` (the Z80 is little-endian so the low byte comes
first). At the time I had high hopes of porting software
like Sargon (the chess game) to the TI-86, given the
availability of its source code in a book[3] that I
checked out from the library (see also here[4]); alas,
that never came to fruition (I was a newbie to assembly
programming after all). I did eventually write a simple
turn-based game and other little programs and libraries
in assembly language for the TI-86. You can find some of
those at https://github.com/abbrev/ti-86-asm[5].
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[3] https://archive.org/details/sargon_202108
[4] https://web.archive.org/web/20070614114334/http://madscientistroom.org/chm/…
[5] https://github.com/abbrev/ti-86-asm
You are viewing proxied material from asciz.com. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.