<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lwr.wtf/mediawiki/index.php?action=history&amp;feed=atom&amp;title=ZorkCit</id>
	<title>ZorkCit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lwr.wtf/mediawiki/index.php?action=history&amp;feed=atom&amp;title=ZorkCit"/>
	<link rel="alternate" type="text/html" href="https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;action=history"/>
	<updated>2026-05-21T03:44:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=2101&amp;oldid=prev</id>
		<title>JesseLWR at 21:38, 11 February 2024</title>
		<link rel="alternate" type="text/html" href="https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=2101&amp;oldid=prev"/>
		<updated>2024-02-11T21:38:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:38, 11 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot;&gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above mentioned CitaNews newsletters have been pulled down and added to the [[Newsletters]] page.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above mentioned CitaNews newsletters have been pulled down and added to the [[Newsletters]] page.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A copy of the above mentioned WebCits.html page is captured [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[File&lt;/del&gt;:WebCits.html&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/del&gt;here&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A copy of the above mentioned WebCits.html page is captured [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;//lwr.wtf/citadel/ZorkCit/&lt;/ins&gt;WebCits.html here]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jesse cannot recall where he pulled the below original content of this page from, possibly the BBS Documentary?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jesse cannot recall where he pulled the below original content of this page from, possibly the BBS Documentary?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-2100:rev-2101:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>JesseLWR</name></author>
	</entry>
	<entry>
		<id>https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=2100&amp;oldid=prev</id>
		<title>JesseLWR: 2024 updates?! What the hell! Got a ping from ZorkCit&#039;s author on mastodon!</title>
		<link rel="alternate" type="text/html" href="https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=2100&amp;oldid=prev"/>
		<updated>2024-02-11T21:31:21Z</updated>

		<summary type="html">&lt;p&gt;2024 updates?! What the hell! Got a ping from ZorkCit&amp;#039;s author on mastodon!&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:31, 11 February 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In 2024 the author of this variant found this archive and reached out to Jesse on Mastodon: https://teh.entar.net/@spacehobo/111861505088465848&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;@docgear Oh, hello again!  I just found your wikified version (I was going to make another mirror of Brent&#039;s pages as a backup of my own, just in case) and I saw you asking for more info on ZorkCit.&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;Well, I wrote ZorkCit in 1997, and I have recovered it pretty much entirely from the Internet Archive (no idea where those peek and poke scripts went, but they were almost one-liners around tied gdbm files).  I can probably provide a complete history of the thing and exegesis of the terrible code if you&#039;re interested!&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;Short story was that I tested Brent Bottles&#039;s multi-user TCP/IP version of Citadel+ on a PC that sat under a desk at work in 95/96.  I never actually used Win95, but I had been using Perl 4 to automate installers for my university&#039;s PC lab, so the test system had a partition that would just fire up the BBS after a reinstall and hum away.  I got a transfer to the Unix department at the university, and re-wrote the thing as a CGI script in Perl 5.&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;I based it on a sample guestbook CGI that I had been playing with, and made one db file per room, and one for the users.  As you can imagine, most of the problems I encountered were around locking behaviours, and I learned a lot of pretty standard lessons through trial and error.  The version of the code I have now doesn&#039;t have exponential back-off, and I don&#039;t know if I ever got that working.&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;The citanews article you copied into the wiki was in one of the very last few issues of the newsletter.   I kind of spent the whole thing trying to make the case that Cit/UX style &quot;WebCits&quot; went against the design philosophy of Citadel way more than adding colours would have.  You can find it in context at https://web.archive.org/web/20050305192838/http://www.citadel.org/citanews/ (which seems to have some issues not in your archive!)&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;So I basically streamlined it all into a sort of DWIM button: if you entered text in the textbox above it, that was Enter message, and if you didn&#039;t that was Goto (or whatever command you&#039;d selected from a dropdown next to it).  Rooms would display all messages on Goto, and anchor you at the last message you&#039;d read.  Then you could just do the reading of old or new messages with the scroll bar.&#039;&#039;  &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;This stuff was kind of revolutionary at the time, as most people made huge pages for each message, and forced you to click-wait-load several times just to read a short conversation.&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;Anyway, I have the code and an archive of the `WebCits&amp;gt;` development room from when I first started tinkering with it.  You can see all my Citadel+ users kvetching at me because I&#039;d moved away from terminals: https://web.archive.org/web/20050405171121/http://zork.net/cit/download/cit/WebCits.html&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;---&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The above mentioned CitaNews newsletters have been pulled down and added to the [[Newsletters]] page. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A copy of the above mentioned WebCits.html page is captured [[File:WebCits.html|here]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jesse cannot recall where he pulled the below original content of this page from, possibly the BBS Documentary?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;FONT FACE=&amp;quot;arial,geneva,helvetica,sans-serif&amp;quot;&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;FONT FACE=&amp;quot;arial,geneva,helvetica,sans-serif&amp;quot;&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-974:rev-2100:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>JesseLWR</name></author>
	</entry>
	<entry>
		<id>https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=974&amp;oldid=prev</id>
		<title>JesseLWR: Created page with &#039;&lt;FONT FACE=&quot;arial,geneva,helvetica,sans-serif&quot;&gt;    = On Designing a WebCit = &lt;blockquote&gt;&lt;i&gt;  Citadel is a room-structured message system. The fundamental design goal is to provi…&#039;</title>
		<link rel="alternate" type="text/html" href="https://lwr.wtf/mediawiki/index.php?title=ZorkCit&amp;diff=974&amp;oldid=prev"/>
		<updated>2010-08-24T04:27:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;FONT FACE=&amp;quot;arial,geneva,helvetica,sans-serif&amp;quot;&amp;gt;    = On Designing a WebCit = &amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt;  Citadel is a room-structured message system. The fundamental design goal is to provi…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;FONT FACE=&amp;quot;arial,geneva,helvetica,sans-serif&amp;quot;&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
= On Designing a WebCit =&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt; &lt;br /&gt;
Citadel is a room-structured message system. The fundamental design&lt;br /&gt;
goal is to provide a congenial forum conducive to interesting&lt;br /&gt;
discussions. The software is intended to be as unobtrusive,&lt;br /&gt;
unintrusive and unconstraining as possible. In software as elsewhere,&lt;br /&gt;
good engineering is whatever gets the job done without calling&lt;br /&gt;
attention to itself. &lt;br /&gt;
&amp;lt;/i&amp;gt;-- Cynbe ru Taren, 1982&amp;lt;/blockquote&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
I gave up proprietary software almost entirely a few years ago.  I&lt;br /&gt;
had a miserable time with the Win32 port of Cit+, and my OS/2 box just&lt;br /&gt;
didn&amp;#039;t run any apps.  I wiped my machines clean and installed Linux&lt;br /&gt;
and BSD on them all.&lt;br /&gt;
 &lt;br /&gt;
I&amp;#039;d played with some web-based citadels before.  Cit/UX has a web&lt;br /&gt;
interface as well as a client/server setup and a telnettable option,&lt;br /&gt;
and there was at the time a system known as WebCit that was written&lt;br /&gt;
entirely from scratch in C.  While I loved accessing the Cit/UX&lt;br /&gt;
systems from the web, the interface wasn&amp;#039;t citlike enough for me to do&lt;br /&gt;
it with any regularity, and the &amp;quot;WebCit&amp;quot; was more like a glorified&lt;br /&gt;
guestbook with no message threading and words like &amp;quot;room&amp;quot; and &amp;quot;hall&amp;quot; bandied&lt;br /&gt;
about.&lt;br /&gt;
 &lt;br /&gt;
I was faced with a choice: I could run a classic telnettable cit,&lt;br /&gt;
or I could write something on my own.  I was leaning toward running&lt;br /&gt;
Cit/UX, although it didn&amp;#039;t support all of the nice user interface&lt;br /&gt;
features that I had grown accustomed to in Citadel+.  It was actively&lt;br /&gt;
supported, and it had been reworked with all sorts of process threading and&lt;br /&gt;
multi-user chat features.&lt;br /&gt;
 &lt;br /&gt;
But then I actually sat back and read the old aaBuyMe.doc file that&lt;br /&gt;
Cynbe wrote nearly 20 years ago.  I read his statements on user&lt;br /&gt;
interface design and what constitutes good engineering.  I read all&lt;br /&gt;
the history about how he had been inspired by Xerox PARC&amp;#039;s&lt;br /&gt;
investigation into user interfaces.  I thought for a moment about what&lt;br /&gt;
I didn&amp;#039;t like about the existing web-based citadels, and realized that&lt;br /&gt;
my problems boiled down to two complaints:&lt;br /&gt;
&amp;lt;ol&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;There are too many buttons to click.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;It takes too long to figure out which messages are new.&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ol&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
All web-based BBSs suffer from one of these two problems.  Either&lt;br /&gt;
you spend your whole life waiting for CGI scripts to load the new&lt;br /&gt;
messages then old messages then new messages again as you try to find&lt;br /&gt;
the context of a discussion, or you root around hopelessly trying to&lt;br /&gt;
remember when you last logged in, and whether or not you already read&lt;br /&gt;
the current discussion.  Quite often, systems will even display all&lt;br /&gt;
messages in reverse order, so that you can read the new ones first and&lt;br /&gt;
then find context.  I find all these things to be hideously confusing&lt;br /&gt;
and irritating.&lt;br /&gt;
 &lt;br /&gt;
== N, or Read New == &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;i&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
The fundamental Goto, Read and Enter commands have been streamlined as&lt;br /&gt;
much as possible.  The message display format has a minimum of&lt;br /&gt;
unnecessary noise:  the topic is implicit in the message&amp;#039;s location&lt;br /&gt;
within a room, no explicit TO field is present, no message ID # is&lt;br /&gt;
printed, no redundant &amp;quot;END OF MESSAGE&amp;quot; blurbs etc.  The most common&lt;br /&gt;
Goto, Read and Enter commands are all single-key.  Citadel&lt;br /&gt;
automatically skips rooms which have no new messages, and old messages&lt;br /&gt;
in the current room.  (Less concise commands are of course available&lt;br /&gt;
to override this.)&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/i&amp;gt;-- CrT (ibid)&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
So I tried to think what made Citadel&amp;#039;s message-reading functions&lt;br /&gt;
unique.  I realized that the basic commands (forward, reverse, old,&lt;br /&gt;
new, and combinations of these) used three basic message pointers: &lt;br /&gt;
&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;The first, or oldest message in a room&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;The last, or newest message in a room&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li&amp;gt;The last-read, or last message you read in that room&amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;/ul&amp;gt; &lt;br /&gt;
Reading new messages (the &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; command) simply displays all&lt;br /&gt;
messages from the last-read to the last.  Reading forward goes from&lt;br /&gt;
first to last.  Reading old goes from the last-read to the first&lt;br /&gt;
message, and so on.&lt;br /&gt;
 &lt;br /&gt;
Given that all web browsers have a scrolling facility of some sort,&lt;br /&gt;
I decided to use the top and bottom of the page to represent the&lt;br /&gt;
user&amp;#039;s ability to find the first and last messages, respectively.  I&lt;br /&gt;
then used a simple anchor tag (&amp;lt;tt&amp;gt;&amp;amp;lt;A NAME=NEW&amp;amp;gt;&amp;lt;/tt&amp;gt;, for those&lt;br /&gt;
of you who know HTML) to represent the user&amp;#039;s last-read pointer.  Now&lt;br /&gt;
the display allows the user to scroll down to read new, scroll up to&lt;br /&gt;
read old, and scroll every which way to recreate any of the basic&lt;br /&gt;
message reading actions.&lt;br /&gt;
 &lt;br /&gt;
== G, or Goto ==&lt;br /&gt;
 &lt;br /&gt;
With the display of messages out of the way, I decided to set about&lt;br /&gt;
designing the interface for moving around the thing.  Although many&lt;br /&gt;
people despise auto-next-hall, I feel it (or a floor-mode system) is&lt;br /&gt;
the least confusing way to allow a user to view the whole system.  I&lt;br /&gt;
simply placed a big button marked &amp;quot;Go To&amp;quot; by the phonied-up room&lt;br /&gt;
prompt, and allowed the use of that for the Goto command.&lt;br /&gt;
 &lt;br /&gt;
I thought long and hard about the use of &amp;lt;tt&amp;gt;.g&amp;lt;/tt&amp;gt; to go to a&lt;br /&gt;
specific room.  I realized that I had to preserve the elegance of the&lt;br /&gt;
single button, so I decided to create a control that defaults to the&lt;br /&gt;
execution of the goto command.  What I ended up doing is designing a&lt;br /&gt;
dropdown box that lists the commands available, all phrased as part of&lt;br /&gt;
a sentence beginning with the words &amp;quot;Go to...&amp;quot;.  The box lists things&lt;br /&gt;
like &amp;quot;next room with new messages&amp;quot;, &amp;quot;your preferences&amp;quot;, &amp;quot;a map of the&lt;br /&gt;
BBS&amp;quot; (our friendly &amp;lt;tt&amp;gt;k&amp;lt;/tt&amp;gt;, or known rooms command!), and finally a list of&lt;br /&gt;
individual rooms in the current hall that are available to the&lt;br /&gt;
user.  This way the user can just hit the &amp;quot;Go To&amp;quot; button, or he or&lt;br /&gt;
she can select an action from the list before clicking the button.&lt;br /&gt;
 &lt;br /&gt;
== E, or Enter ==&lt;br /&gt;
I had long been frustrated with systems where attempting to enter a&lt;br /&gt;
message took the user to a new page.  Part of the elegance of citadel&lt;br /&gt;
is that the user can see his or her own message as part of the stream&lt;br /&gt;
of messages even while entering it--only a single line or two makes it&lt;br /&gt;
look any different.  I decided to put the message entry box at the&lt;br /&gt;
bottom of the page, after the controls for navigation.   A Save&lt;br /&gt;
Message button and an Abort Message button (the familiar &amp;quot;clear form&amp;quot;&lt;br /&gt;
button) finished off the interface nicely.&lt;br /&gt;
 &lt;br /&gt;
The only problem with this is one that I plan to remedy shortly:&lt;br /&gt;
the Go To and Save Message buttons are actually the same button.  It&lt;br /&gt;
should be trivial for me to fix the problem by checking some values in&lt;br /&gt;
the primary control structure.  I plan to do this as soon as I find&lt;br /&gt;
time (I&amp;#039;ve been rather caught up with the &lt;br /&gt;
[http://zork.net/refund/ Microsoft Windows Refund Day newsletter] lately). &lt;br /&gt;
 &lt;br /&gt;
== Dancing Baloney ==&lt;br /&gt;
many people have criticised me for using GremCit/Cit+ default&lt;br /&gt;
colors for my output.  This is easily changed.  I had originally&lt;br /&gt;
intended to just make the title, surname, and date bold while the&lt;br /&gt;
username was underlined.  An enterprising SysOp could make the&lt;br /&gt;
necessary modifications in a few minutes.&lt;br /&gt;
 &lt;br /&gt;
The colors are garish, but they make it easy for the eye to&lt;br /&gt;
distinguish header information from message text, and I often only&lt;br /&gt;
read the magenta (username) and white (body text) when my eye scans&lt;br /&gt;
down the page.  The colors also help conjure up the feeling that the&lt;br /&gt;
user is at the prompt of one of the old DOS citadels.  I ended up&lt;br /&gt;
eschewing the fixed-width courier font for a more legible sans-serif.&lt;br /&gt;
This caused grumbles from the peanut gallery, initially, but all my&lt;br /&gt;
users have grown to like it.&lt;br /&gt;
 &lt;br /&gt;
== Little Pixies ==&lt;br /&gt;
Now, while I feel that I&amp;#039;ve done the best job of coming up with a&lt;br /&gt;
web-based interface for a Citadel, the implementation is far from&lt;br /&gt;
stellar.  There is currently no telnettable interface for it, and the&lt;br /&gt;
HTML is stored along with the messages in the room databases.  The&lt;br /&gt;
system uses a whole host of GDBM files, one per room (as opposed to&lt;br /&gt;
the three primary databases used by most citadels).  It can be rather&lt;br /&gt;
sluggish when performing operations such as the display of the map.&lt;br /&gt;
Still, ZorkCit does accept commands in CGI GET format, so the&lt;br /&gt;
administrator can have links to rooms embedded in ordinary web pages.&lt;br /&gt;
 &lt;br /&gt;
Other problems with the system include a completely ad-hoc method&lt;br /&gt;
for generating passwords and new accounts.  In future, I hope to&lt;br /&gt;
integrate these into the main program.  As it stands, the new user&lt;br /&gt;
must fill out a separate form ([http://zork.net/cit/ the ZorkCit welcome page] &lt;br /&gt;
is also a little confusing).  In addition,&lt;br /&gt;
ordinary HTML is allowed in the message entry, requiring both skill&lt;br /&gt;
and conscience on the part of the users.  Remote administration isn&amp;#039;t&lt;br /&gt;
exactly simple, and I spend most of my time manually &amp;lt;tt&amp;gt;peek&amp;lt;/tt&amp;gt;ing&lt;br /&gt;
and &amp;lt;tt&amp;gt;poke&amp;lt;/tt&amp;gt;-ing values into and out of the GDBM files (peek and&lt;br /&gt;
poke are two scripts I wrote while trying to fix a room that had a&lt;br /&gt;
nonprintable character in the name).&lt;br /&gt;
 &lt;br /&gt;
The one thing that I feel makes this system more Citlike than any&lt;br /&gt;
other is the fact that it is released in source code form.  ZorkCit is&lt;br /&gt;
licensed under the GNU General Public License.  This means that all&lt;br /&gt;
those who wish to create derivative systems will always contribute the&lt;br /&gt;
code back to the Citadel community.  Almost all the Citadels recently&lt;br /&gt;
in heavy use are descended from the source releases of Citadel 2.1,&lt;br /&gt;
Cit86, and DragCit.  I tend to think of these as the Unix 6th edition,&lt;br /&gt;
32/V, and BSD of the Citadel world. Citadel has always been rooted in&lt;br /&gt;
the culture of open source software, and even Cynbe ru Taren is&lt;br /&gt;
spending time writing [http://muq.org/~cynbe/rants/lastdino.htm pro-Linux rants]!&lt;br /&gt;
 &lt;br /&gt;
== Flame Wars, Topic Drift, and Citadel Suggestions ==&lt;br /&gt;
For an archive of the discussion on the development of ZorkCit,&lt;br /&gt;
please see the [http://zork.net/cit/download/cit/WebCits.html WebCits.html] &lt;br /&gt;
file that is distributed with ZorkCit.  It chronicles the arguments we&lt;br /&gt;
had over the last year or so about how a proper citadel should be&lt;br /&gt;
implemented.  Feel free to join up with the discussion and share your&lt;br /&gt;
thoughts in the WebCits room on the [http://zork.net/cit/ ZorkCit test system]. &lt;br /&gt;
 &lt;br /&gt;
I&amp;#039;d like to thank Eve, Masquerade, Shazdeh, Iori Yagami, and&lt;br /&gt;
Narcoleptic Dog for their feedback and contributions to the&lt;br /&gt;
development of the system.&lt;/div&gt;</summary>
		<author><name>JesseLWR</name></author>
	</entry>
</feed>