Copyright © 2002, 2003, 2005 by Gene Michael Stover. All rights reserved. Permission to copy, store, & view this document unmodified & in its entirety is granted.
My web site contains whatever I felt like writing. That's usually short essays about programming, for programmers. The main copy of the site is lisp-p.org, but there is a mirror at http://CyberTiggyr.com/gene/.
I created lisp-p.org in about 2001 January. It was originally an ``online magazine for Lisp programmers'', but it didn't take long before I published almost anything I wrote on it.
I registered the domain name CyberTiggyr.com in 1991 but didn't put a web site on it until about 2001 August(?), when I finally got DSL at hom.
The main place for lisp-p.org is lisp-p.org but CyberTiggyr.com/gene/ sometimes holds more recent, less polished releases of the site.
I write most of my documents with LATEX. I compile them to DVI for printing with LATEX, of course, & I compile them to HTML for my Web site with latex2html ([Dra]).
For very short documents with simple structure, I sometimes edit raw HTML.3.1
For CGI, I prefer Lisp, but one of the servers with a copy of my Web site doesn't have a Lisp, so I usually use Perl.3.2
To publish a release of my Web site, I compile it. I keep the sources on a development machine, where I can compile the site & see the results without affecting the official servers. When I want to publish a new release for the world to see, I compile the site for the two official servers & upload the results to the servers.
I'm glad I decided to compile my site like I would compile a program, & to have a development server that is separate from the official servers. Some advantages of that decision are that I can experiment with my site without breaking the releases that the world can view, & it has forced me to keep my site portable, so that I could move it to other servers if (when) the need arises. A disadvantage of the decision is that my Web site is large enough that compiling it & uploading it to the servers has become an inconvenience, even with a high-speed uplink. I could reduce the installation times if I compiled the site for each server into its own directory. Then I could upload only the files that have changed. Is that worth the trouble, or should I keep the simple solution?
My build system uses Gnu autoconf to create a Makefile. Then I run make to build the system into ./web. I run make install to copy to the web server's directory on the local system.
I can do a cross-compile by setting appropriate environment variables before running ./configure. See the setup program for how it's done. The idea is to twiddle the setup program whenever necessary. That'll work fine as long as the number of systems I install on is small & doesn't change frequently. Currently the number is three, & only one of the systems has changed since I setup the system in 2001.
Here are descriptions of the environment variables used by my build system.
On Plague, my development & staging system,
For each of those Web servers:
On any computer anywhere, point a browser at http://www.CyberTiggyr.COM/gene/, at http://gms.freeshell.org/, & then at http://www.lisp-p.org/root.cgi to verify that the web sites are functioning properly.
Saturday, 24 August 2002
I noticed that LATEX2HTML is unable to render the mathe equations in ``And You Thought the Printing Press was Important''6.1. I believe LATEX2HTML is installed incorrectly. At least, it doesn't know how to run LATEX properly. Fixing it today.
One test of correctness is that I should be able to cd to the directory containing the LATEX document & run LATEX with no errors or warnings other than the usual ones about hyphenation & other type-setting difficulties.
A second test is doing the same thing with LATEX2HTML.
Instead of tweaking (correcting) my current configuration, I decided to install the entire TEX system from the June 2002 TEX Live CD-ROM.
The installaion went fine for a few minutes, then paused after printing ``Wait while format files are made, which may take some minutes''. There was no disk activity, & no process was using significant CPU cycles. It turned out that the installer didn't like two environment variables: TEXFONTS & TEXPKS. The installer had printed the error message to /usr/TeX/texmf-tmp/texconfig.log, not to the console, so I couldn't see it. So I removed those two environment variables & restarted the installation process from the beginning.
The installation finished, but from the log messages, looks like it skipped the step that blocked last time. So I'll remove the entire /usr/TeX subdirectory tree & run the installation a third time.
I installed & reinstalled TEX Live many times before getting it right. Here are some things I had to do to make it work.
Sunday, 30 August 2002
Testing math mode, right here & now.
Looks good in both LATEX & LATEX2HTML.
Test that the LATEX2HTML styles are
installed correctly for both LATEX &
LATEX2HTML. Did it by adding
usepackage html6.2to the top of this document &
inserting those
latextohtml commands in this very
paragraph.
Looks like it worked just fine.
Unrelated to installing TEX & friends, I notice that it has been at least four weeks since I revamped my Web site & started using Google's site-searcher service, but Google's spider has yet to notice that the URLs to my articles have moved. Google's site-searcher service instructions warned that their index would take its own good time to update.
Consider using an on-site searcher. I guess there's one called HT Dig.
Finished http://localhost/~gene/www.lisp-p.org/htdocs/authors/authors.html. The main change was converting it to LATEX. I made some edits, but not many. So it could use some editing.
Finished http://localhost/~gene/www.lisp-p.org/htdocs/editorial-0/editorial-0.html. Not great, but passable.
The web pages compiled by LATEX2HTML have navigation buttons at the top & sometimes at the bottom. I wanted to add a button to link to the lisp-p.org main page. I tried using Gimp to make such a button.
It's easy to make a button. It's difficult to make a button with exactly the same style as a button someone else made with some other program.
I suspect the easiest way to ensure all the navigation buttons look alike is to make them all from scratch. I'll do that tomorrow.
To help debug such endeavours, I created ``Gallery of Incidentals''. I might as well create a similar document for my personal web site. To make the most of code reuse, I guess I could place most of the report in a function in my Perl library.
I also created ``Monitor the Global Situation in Realtime''. Its title might change. It's just an automatically refreshing document to maintain network activity between a browser & the server to keep a dial-up connection alive. It's supposed to be mildly interesting or humorous. It'd be nice to add some actual information about the real world. Maybe a stock quote or news headline.
To the navigation bar generated by html added a link to the site's root. Did this for my personal site & for the Lisp magazine's. Also created buttons for those links. They aren't pretty, but they work.
The main work today was writing Copyright for Online Authors.
Corrected the author in src/www.lisp-p.org/htdocs/incidentals-gallery/gmsdoc.perlhash.
Added ``finger'' feature to Monitor the Global Situation in Realtime.
All this was for release 2, which I'm about to publish.
Corrected the title in Pascal Costanza's ``Highly Opinionated Guide to Lisp''.
Added Darius Bacon's ``Hacker's Guide to Partial Evaluation'' to the Lisp Magazine.
Changed the page of links on my personal site.
Temporarily added my pathnames article to my personal site while I work on it. When I finish it6.3, it'll move to the Lisp Magazine.
Pushed release 4 to the world wide web server for the world to see.
Corrected a link in Guidelines for Authors. Someone's robot found the problem & alerted me via e-mail.
This document is now the official ChangeLog.
Release 5.
Updated Darius's partial evaluation article.
Improved make-makefile-in. Now I don't need nearly as many make-makefile-in.ignore files.
Changed the Release Procedure (section 5).
Release 6.
Updated my List of Favorites. Don't know why I bothered. Then again, if you don't keep your list of favorites updated, what's the point of having a web site?
Created the article about event-driven programming (../events-0/index.cgi). It's unfinished. It verges on being a rant, so it might split into more than one essay before I finish it.
Got tired of waiting for a reply from the C Users Journal, so I moved my article about the Boehm collector, ``Garbage Collection in C & C++'', to ../boehm/index.cgi.
Release 7.
Added ../vbs-ie/index.html.
Gave ../boehm/index.cgi a ``root'' button.
Edited ../events-0/index.cgi. Edited the document, not just that one *.cgi file.
Some additions to Event-Driven Software Architecture. Added Fables.
Added 3triad.
Added notes for an article about resource pools.
Removed my article about the Boehm collector before ever pushing it to my site on Freeshell.org. That's because the C User's Journal said they wanted to publish it.
Release 8.
Updated links page.
Fixed a formatting problem in cpio how-to.
Release 9.
Updated the reviews of Blood Rayne & of Rez.
Turned my résumé into a link to the copy on Monster. Not sure if that will work for the average person who tries to view it. I'll have to undo it if it doesn't.
Removed some unfinished essays to a safe place, outside of my web site. Might as well avoid cluttering my site with documents which are unfinished & might remain unfinished for ages.
Updated my List of Favorites.
Release 10.
Looks like the résumé trick with Monster didn't work. To view the résumé, someone will need to login to Monster. Can't have that. So I need to copy the HTML résumé from there to my web site directly.
I really should get around to writing a program that would generate an HTML version of my résumé from a data file. I've meant to do that for, well, years I guess.
In my review of the video game Rez, I put the game's title in emphasis. (Yeah, such a trivial change that it probably shouldn't be meantioned here.)
Many changes to CyberTiggyr.COM System Documentation.
Ported my Web site to Vex. It still compiles & installs on Plague, but now I can install it on Vex also. I used to install it on otaku.freeshell.org.
Vex is www.CyberTiggyr.COM.
Release 11.
Changed my site's installation directory from $HOME/public_html to /usr/local/apache2/htdocs/gene. I can't remember why I did that. I think it was because tildes (~) in URLs were confusing LATEX.
It turns out that cpio on Vex, which is probably an old cpio, doesn't overwrite existing files & doesn't print any warning message. So before extracting a cpio archive, I must remove all the files in the destination.
Release 12.
Found all references to my old site, http://gms.freeshell.org/ & replaced them with my new site, http://www.CyberTiggyr.COM/gene/. Well, almost all. Some references didn't translate well. There were about eight to translate & about three that didn't. Live & learn. I didn't know what to do with the references to lisp-p.org, so I left them. That site will need serious updating, too.
Release 13.
Removed Google search from the bottom of the front page. Did that because the Google search widget was keyed to my old site, http://gms.freeshell.org/root.cgi, so there was no need for that particular widget here, & I'm too lazy to register a new widget with Google. Besides, in all the time I had the Google widget on my old site, Google didn't once scan my site, so what's the point?
I might implement my own local search instead.
I actually wrote something about my experiments with applying evolution to Shellsort. Not nearly done, but I've made progress at last!
Later, did more work on the Shellsort article. It's now a rough draft for review. (Review by whom?)
Release 14.
Added a bunch of ToDo items to the Shellsort article, since I'm thinking of them. Naturally, I thought of them after making release 14.
Tweaked the release procedure (Section 5).
Release 15.
Added release number & date to root.cgi.
Updated the release procedure. Now, I release to vex.CyberTiggyr.COM & to otaku.freeshell.org.
Release 16 to test those changes.
Put pointers to both copies of my site at the bottom of the front page.
Edited Improving Shellsort Through Evolution. It's still not finished.
Edited List of Favorites.
Release 17.
Updates to Improving Shellsort Through Evolution. (I'm damned tired of working on that wretched paper.)
Some minor updates to other files, such as my list of favorites & this file.
Release 18.
Spellchecked Improving Shellsort Through Evolution. Should have remembered to do that earlier. Whatever.
Release 19.
Fixed a typo in the sequence of run number 8 that someone on Slashdot pointed out. (In Improving Shellsort Through Evolution.)
Removed most information from the ``Contacting Me'' page.
Release 20.
Broke the link in the ``Contacting Me'' page of course. Fixed it now, but not gonna bother to do a release again right now.
Wrote An Idea for Distributed Intelligence by Use of Polynomial Transforms.
Wrote initial version of Distributed Evolution for Improving Shellsort: Design Thoughts. At this point, it's just some notes.
Removed (erased) the ``SDET'' document. It was unfinished, barely started, & I don't think I ever would have finished it.
Release 21.
Converted C as a Portable Intermediate Language from notes in plain text to LATEX. Added some content. It's not well-written, but the thoughts I wanted to say are there. So screw it; let the world heed or ignore. Whatever.
Release 22.
Release 23.
Added The Sensitive Man. It might be a temporary addition, if the story ends up good enough to sell. Currently, I'm putting it here for friends to help me review it.
Release 24, though I forgot to bump the release number. That's what I get for not following my own release instructions.
Moved Untitled (Short Story 9) from my archives (which aren't online).
Release 25.
Created Controversial Ideas about Programming.
Edited Short Story 10.
Re-inserted résumé.
Release 26.
Edited the Sensitive Man short story.
Tiny edits to Wife short story.
Added résumé in formats for Microsoft Turd 2002 and for Microsoft Turd 97.
Release 27.
Added uptime section to monitor.cgi.c.
Removed htdocs/links/links.cgi.sh. Renamed links.html to index.html. Updated the links to that page. (Hope I got them all.)
Re-write of Pathnames Quick-Start & Quick-Reference.
Work on Pathnames Quick-Start & Quick-Reference. Learned a whole lot about pathnames & the rest of the Common Lisp file system interface. Changed my opinion of it. Now the article needs some serious re-working. Many of my ideas about pathnames are turned on their heads. So the article is now, absolutely, definitely unfinished.
Created Review of Wild Arms 3.
Release 28.
Fixed the URL for Wild Arms 3 in src/only.bib. As usual, I found an erroneous URL immediately after making a release. Ah, well. The world will run along happily or unhappily enough even with an erroneous URL on my site until I make the next release.
Updated résumé.
Release 29.
Updated Links.
Created Review of .hack // Infection days ago.
Created Lisp/CGI Programming Experiments a few days ago, have worked on it a lot since.
Added The People With Holes In Their Heads. I've had it as a plain text document for at least a decade. I did not write it. I move it to my site & converted it to HTML.
Release 30.
Added ../htdocs/inventions/, mostly in an attempt to beat those ``we own everything you do unless you can prove otherwise'' clauses in job contracts.
Release 31.
Finaly got rid of root.cgi. Here's the To Do item:
Replace root.cgi with an index.html that is generated at compile-time. I'll need to keep root.cgi so old links aren't broken, but index.html should have real info instead of redirecting to root.cgi.
The difficulty in doing this is that root.cgi requires some Perl modules I wrote, & it's designed to locate them online (as part of the Web server). To generate index.html at compile-time, I need to convert root.cgi to a program in ./bin/, which is easy, but I need to compile those same Perl modules into ./lib/perl5/ or some similar place. They aren't designed for that. Also, there may be some directory problems because, on the web site, the documents are in ./htdocs/ as far as root.cgi & the Perl modules are concerned, but at compile time, they are in ./src/htdocs/.
It's not a difficult job, but it will be an annoyance. The annoyance factor may be higher than the benefit. I hate that.
Actually, root.cgi still exists for backward compatibility, but now it reads index.html & writes it to stdout. The old code is still in it but not executed; that can be cleaned-up in another release, when I'm sure the new implementation works well.
The gmsdoc.perlhash files are no longer needed, either. I can remove them in a future release.
Getting rid of root.cgi was initially tough because I thought the compile-time generator of index.html needed to scan the directories & find all the gmsdoc.perlhash files, then parse them. root.cgi did exactly that, but converting it to a compile-time program proved difficult.
Most (not all) of the blame lay on the small Perl library I had written for root.cgi. I intended for it to be generally useful, but pathname problems made it too difficult to use in programs that weren't CGI programs on my Web site. (This should probably serve as a lesson for next time.)
To finally work the trick, I converted the contents of all the gmsdoc.perlhash files to a single list for Lisp. I hard-coded that list in a clisp script that generates ./web/index.html which is then installed on my Web site.
The Lisp program is ./src/make-index.sh & is not installed on the Web site.
Currently, make-index doesn't do the ``categories'' (keyword list) that root.cgi did. It prints a ``What's Newest'' list, a list of hard-coded links, & a list of all the documents, sorted by title.
I'll have to add the categories feature later. Not quite sure how to do it. make-index could create a bunch of HTML files, one for each combination of ``sort by (title, author, creation date, modification date)''. Maybe the Lisp program could generate a Perl CGI program with all the article data hard-coded into it. The Perl CGI program could generate the keywords pages dynamically, as it does now, but without the need to scan the directories. Hmmm...
lisp-p.org still uses a root.cgi.
Updated many of the links to articles on my site so that they don't use CGI program entry points. The CGI programs are still there for backward compatibility (or easy recoverability, if necessary). I'll remove them in a future release.
Release 32.
Added Review of Clock Tower 3.
Added The ``Singleton'' Design Pattern Does More Harm Than Good to Controversial Ideas about Programming.
Updated, finished Review of Clock Tower 3.
Some edits to A Heap (Priority Queue) Implementation in Lisp.
Release 33.
Fixed CPIO How-To so that you don't see an ugly directory listing when you visit that URL. The fix was simply to rename the source file to index.html.
The build process now generates PostScript & DVI files for LATEX sources. It copies those & the LATEX source to the output directory. The idea is that I include a section (appendix, probably) in my LATEX articles that gives links to the source, the PostScript, & the DVI.
Added ``Other Formats of the Document'' chapters to the ends of some docouments. Those chapters include links to download PostScript, DVI, & LATEX sources of the documents. Instead of chapters, they should have been appendices, but latex2html does appear to compile appendices. Weird. Whatever. Screw it.
Second night in a row of futzing with the build system & automatic index-generation. Found a bug (probably already known) in BibTex, too. Ugh.
At least my cat appears to be having a good time.
Now I have a problem that makes me question this whole unified database of articles for both BibTeX & the index on my site.
For BibTeX, the URLs to articles should be complete. In other words, they should start with ``http://'' & include a host name.
For my site's index, URLs should be relative to the site's root.
What's more, since my site is on two servers, it'd be nice if the URLs in BibTeX were automagically rooted at the actual site, whether that's on CyberTiggyr.COM or freeshell.org.
How to achieve all these goals?
Possibly the easiest URLs to handle are those for external articles. Such URLs can be complete in the database & placed into BibTeX unmodified. No biggie.
What if URLs for articles on my site were pseudocomplete, beginning with a special string that wasn't ``http://hostname''? The compiler could substitute the actual hostname & base path when it compiled to BibTeX, & when it compiled to an online index file, it could strip the special string entirely, leaving a relative URL.
How well would this expand to URLs that were not in the HTTP domain, like FTP URLs6.4
How well would this work with lisp-p.org, which is a Web site embedded in the other two sites? Would I need yet another special prefix string, one that would be replaced with ``http://www.lisp-p.org/''? And BibTeX for lisp-p.org would need to use CyberTiggyr for the base URL on those pseudocomplete URLs. Ugh.
What if I split the Web sites, so that lisp-p.org was a separately compiled project? But it seems like maintenance is easier if they are all one compilation & installation system. I'm just one person without a lot of free time, after all.
So what if I went back to a hard-coded BibTeX file, & these recent changes applied only to articles on my Web sites? Then I would have changed how the on-site indexes were generated but nothing else. Would that work?
I think that would work. It'd keep the article database smaller, more manageable, too. I could put the official URLs into BibTeX, so that problem is solved, though it removes the possibility of tailoring the official URLs to the actual site.
An advantage is that BibTeX information changes less frequently than my article database because it does not include the time when an article was changed.
Hmmm...I could hard-code the remainder of the article database as a data structure in the Perl CGI program that displays indexes. That removes the possibility of a list of keywords on the front page, but it keeps the index program & the database really simple. The front page could have a link to the index program, & it could contain a search form.
Doh! The front page needs a list of What's Newest. So no-go for that idea. Still, the index-generator compile-time Lisp program could generate a Perl CGI index program with a hard-coded article database.
So I guess what I've decided in this rambling is
It's about half-past midnight. I started programming at 20:00 yesterday evening. I made much progress ... until I started hacking some simple CGI programs in Perl. (All the progress was in Lisp.) Perl sucks. I wasted most of the evening tracking down a bug. At work, where I am forced to use Perl (& did not mind until experiences in the past few days), I recently learned that @_ does not always hold the arguments to a function or a code block, so I sometimes must use $_. This evening, the problem was the other way around; I had to use @_. Did Perl help find the problem? Is there any rhyme or reason to the problem? Is the problem's occurence even predictable?
No.
Perl sucks. It's not because it's forgiving. It's because it's inconsistent. It's a decent string-processing language, but if you move outside of that realm & the paper-thin veneer of rationality it provides, you are in an unpredictable, unreliable region of the language, where a run-time that tries to ``do the right thing'' is exactly the wrong thing to have.
I seriously loathe Perl now. Besides costing me several days of productivity on an unrelated issue at work, it has now cost me an evening of programming that could easily have been productive & enjoyable in another language.
I will wipe Perl from my web site. It may take weeks because I'd rather do something that's actually useful on my site, but eventually, all Perl CGI programs will be gone. (Thank god that my build system runs exclusively on Lisp & Bourne.)
I would use Lisp for my CGI programs, but Freeshell doesn't have a Lisp, so I'll fall back to C for CGI. I'll need to find a CGI library for C to do that.
I've been programming since I was 11. That's 34 years. In that time, I recall being this disgusted with a computer, program, or language only once. That was about 34 years ago, when I spent several days typing a program from a magazine, then accidentally deleted it with a careless single keystroke in my Atari 800's ``DOS menu''. I threw up then.
Perl: Hate it. It's a disgusting language, & I think that's the first time I've said that about a programming language.
Removed index.cgi from Rez & from files that referred to it.
Finally, the over-haul is done. The make-index program writes an index.html page that with ``What's Newest'', ``Links'', ``Keywords'', & all articles sections. I re-wrote & tested articles.cgi. Now it prints a nice table & a list of keywords at the bottom.
A search feature might be nice, but I'm not going to waste time on it now.
Might want to push these changes into www.lisp-p.org. It still uses the old system that depends on gmsdoc.perlhash files.
Removed all instances of index.cgi. Removed all gmsdoc.perlhash (except within www.lisp-p.org.
Release 34.
Finished ``A Heap (Priority Queue) Implementation in Lisp''. Moved it from my personal site to www.lisp-p.org.
Created [Sto03b].
Created [Sto03g].
Altered compile-latex so that it no longer copies LATEX source files to the destination directory. I decided that the source files & the copyright on them differs from the DVI & PostScript files. I no longer want to make the LATEX source files public. (Notice that a document written directly in HTML does not have this flexibility.)
Updated apply-rcs-label to create a new branch as well as applying labels. Also, for safety, it ensures that all files are checked-in.
Added more to [Sto03b].
Release 37. (Release 35 & 36 happened as part of testing the new apply-rcs-label. They were not real releases.)
Documented the functions in [Sto03b], including examples for each. Revamped the test programs for that library, though the library itself is not yet available for download.
Will need to create an installation scheme & document it before putting the library online.
Updates to [Sto03g]. (I had planned to finished that & a couple others this weekend, but I was not nearly as productive as I had hoped. Best-laid plans?)
Release 38.
Looks like the catalog.cgi program has problems on Freeshell. I wonder for how many revisions that problem has existed. Needs fixin'.
Looks like the problem on Freeshell was caused by a hard-coded path to Perl. I wonder how that crept into the source. I used to use @PERL@ to allow my installation programs to insert the path to Perl because each installation system might have its own path (which Freeshell does).
Edits to [Sto03g]. I think this might be the final version.
Release 39.
Finished [Sto03b] ... for now.
Created copy-to-website in the CyberTiggyr Tigris sources, then added a rule to Makefile.in.in in my website project to copy the Tigris distro archives & source tree to the Tigris article in my Website. That took an unexpectedly painful & long two hours, & I fear the result is fragile, so figure releases might not allow for browsing the Tigris sources online. Fuck it. Fuck it all.
Edits to [Sto02b].
Release 40.
Created Letters to Congressmen & the President. Added a section or two to [Sto02b].
Created Converting XML to Lisp via Perl.
Release 41.
Added search feature. Primitive. Not pretty. It works, though.
Folded www.lisp-p.org into my personal web site. Wrote a short note about it.
Created [Sto03e]. Need to finish it tomorrow.
Finished review of Ratchet & Clank. I don't think I've done a good job of writing it, so maybe I should do some edits or even re-write it later.
Move all documents from src/htdocs/ directory to docsrc/ directory.
Had to update the menues at the top of the LATEX documents. Instead of hard-coding them, all those files now include ../navi.texinc. That'll make it easier to change the menus in the future. I hope.
Decided that CyberTiggyr's Web server can be addressed as CyberTiggyr.COM. No need for the ``www'' in front of that. Changed the links in only.bib. The old hostname still works.
Moved documentation for CyberTiggyr Flez into my Web site.
Release 42. I know there are many broken links from the restructuring. I'll have to fix them over time. I can probably get most of them before the next release, but I'm not going to do them all right now.
Inserted Monterey dive guide ([]).
Updated Tigris documentation ([Sto03b]).
Re-wrote Monitor the global situation. It actually has some useful information in it now, though few would recognize it.
Did I create the Flez documentation ([Sto02a])? May have done that a few days ago. Can't remember.
Release 43.
While installing on Vex & Otaku, found errors in Makefile.in & server-install. Fixed those without cutting a new release, but the next release should go more smoothly.
Created [Sto03a] & [Sto03c] elsewhere. Moved them here. They are unfinished.
Release 44. Hope the instal on Vex & Otaku goes well this time.
Added a couple of entries to [Sto03f]. Removed some more old ``htdocs'' links; they are almost all gone.
Release 45.
Oopsie. Forgot to run ``apply-release-labels''. No biggie.
Added randomly selected quote to front page.
Lots of piddling little changes during the week. I didn't record them here (shame on me). Screw it.
Release 47.
Changes to front page & to links page. I believe I've updated the last of the links that contain ``htdocs/''.
Release 48.
To Thoughts about Everything, added entry called ``Virtual World Exchange Language''.
Fixed broken image to Root in Contacting Me.
Another short entry to Thoughts about Everything. Release 49.
Thoughts about programming a MUD in Lisp in ``Thoughts about Everything''. Changed title on the front page.
Fixed search. My site's own search engine now works! It uses a really basic algorithm, & it formats the results in an even more basic way, but it works. Unexpectedly good performance, too.
Release 50.
Well what do you know? The searcher works fine, but it uses over 4,000 small files for its index. That's fine on my development system & on CyberTiggyr.COM, but it bumps into the 5,000-file quota on otaku.freeshell.org. So I need to rework it. Maybe I should store the index in a single GDBM file.
Fixed the problem with the searcher. Tried to fix it with GDBM, NDBM, or any other DBM, but I couldn't get Perl to tie a hash to a DBM of any kind. Bloody hell. So I decided to write the entire index as a hash table in text form to a file. Big file. So I compressed it to about 150 kilobytes with bzip2. That's what the index-builder does. The CGI searcher itself asks bzcat to uncompress it to text, reads the text, & evaluates it as Perl, which reconstitutes the hash table that is the index. Works great. Takes two or three seconds to load the table, which means all searches take at least two or three seconds. Maybe it would be faster with DBM since it would read only the entries it needed, but it's good enough for now especially since I don't want to program a searcher, anyway; I really want to work on Critters & though that fixing the searcher would take only an hour or two today. It actually took five hours. It's done now.
Release 52.
Updated ``Thoughts About Everything''.
Updated ``Speed of your Internet connection''.
Created ``About CyberTiggyr Team's Submission to ICFP's Annual Programming Contest (2003)''.
Release 54.
Fixed bugs in the release. Damn. Let myself get careless. When that happens, you die so easily.
Release 55.
Updated []. Updated []. Finally added [Sto03d]. Trying a new algorithm for the searcher.
Release 56.
Added CyberTiggyr Lizard.
Much work on resumé.
Created Gene's JavaScript Experiments.
Release 69.
Added a couple of articles about Tarot cards.
I upgraded Plague to Red Hat Professional Workstation (Gnu/Linux) about two weeks ago. Clisp doesn't work on it, even after the clisp maintainer tried to help, so I switched to SBCL. Now I need to update my web site's build system to use SBCL.
To prevent the need to make similar changes if I change Lisps in the future, I wrote a program called CyberTiggyr lisp-script. All my Lisp programs which are run from the unix command line can begin with ``#! @HOME@/bin/lisp-script'', where @HOME@ translates to my home directory on the host system. On {plague, palsy}.CyberTiggyr.COM, it becomes /home/gene, but on SDF, which hosts lisp-p.org, it becomes something else which I can't remember at the moment. I think it's /arpa/a-g/g/gms, or something like that.
SBCL is installed. Lisp-script seems to work fine with it. I've ported CyberTiggyr Tigris & CyberTiggyr Chill to work with SBCL. I'm ready to make my first web site update since I had the brilliant6.5idea of upgrading the Plague. This will be release 149 of my web site.
Gene Michael Stover 2008-04-20