The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Tuesday, November 01, 2005

Survival, Day 8

The weater is warming up (Boo! Hiss!). It's also overcast and raining today (Boo! Hiss!).

We're still without power and it's hard to see ever growing glow of civilization and wonder when are we going to get power? Why have you forsaken us? Smirk though, still has no power, and yet has to endure the Vegasequse glare of power from the next street over.

The Kids got bucketfulls of smack candy from Trick-or-Treating last night at the Mall, so we have a week or so of dealing with sugar fueled kids.

Did I mention we still have no power?

Also, it's National Novel Writing Month but given the events of the past week, and the fact that we're still without power at Casa New Jersey, I don't think I'll be signing up for it this year (not like I ever finished the previous years I signed up).

Other than that … not much else to report.


Hacks

Oh, I did receive email from an old friend of mine, Bill Lefler, someone I've known since middle school (the only friend I've known longer is Hoade). He wasn't hit so hard this year from Hurricane Wilma, but he did get hit from last year's Four Horsemen of the Hurricanes.

He related this story from last year:

We were out for about a week and and half last year and because we're on a well we had no water flow either. The water in the kiddie pool that we were bathing in was getting kind of nasty by the time my father-in-law showed up with a generator.

Then I decided to contribute to the injury stats by trying to cut my leg off with the chainsaw. I felt like a complete doofus at the emergency room because all they were getting were chainsaw and saw injuries from people not used to doing the that kind of work. It took me a few years of chainsaw experience to get to an injury like that dammit!

What happened is that I let myself get overtired cutting up all the limbs. I was cutting and stepping over the cut branches and had let up on the saw trigger so that it was going from full speed to stop and brought the saw down just when I was stepping forward over a branch. By the way, I was wearing shorts.

I felt the saw hit my leg and I remember a thought process something like this …

“Something just hit my leg.”

“That was the chainsaw hitting my leg.”

“I just hit my leg with the chainsaw.”

“My leg doesn't hurt … so I guess the chain was stopped.”

“I better take a look at my leg to make sure it's ok.” Takes a look at leg in question. “That doesn't look good.”

“Is that what the inside of my leg looks like?”

“Oh crap. I better do something about that leg.”

It was very strange as there was really no pain at all and it wasn't really bleeding, but I had had cut my leg right above the knee about three inches wide and about an inch deep.

To top this all off nobody was home but me and the kids and they were over at the house (luckily outside) several hundred feet away. I called the kids and pinched my leg together to keep everything inside while I hobbled to the barn. I had one of them go get the neighbor and another go get the phone and a washcloth. I was sitting on a chair in the barn when the phone and neighbor arrived (I just wanted an adult there in case I keeled over, but like I said there was really very little bleeding and no pain). Amusingly, one of the kids asked me if was feeling dizzy. “No,” I said. “Well, I am,” he replied.

Anyway, the oldest [kid] called [my wife] (I was still holding my leg closed) and told her that I had cut my leg with the chainsaw. “I'm all right,” I called to the phone several times as he didn't offer her any further explanation. “Tis only a flesh wound,” I added.

I think she set the land-speed record getting home to take me to the emergency room. Incidentally, she had been in the middle of a hair cut which I'm sure made us quite an interesting couple showing up to the hospital.

I got a nice ego boost at the emergency waiting room when I sat down beside some eight year olds holding still holding my own leg shut. “Whoa …” they exclaimed when they found out that I'd chainsawed myself. But in their head I'm sure they were finishing the thought. “… what a doofus!”

Other than that, his family is doing well, and they're in the process of adapoting two girls from Liberia. They were planning on vacationing down here in the Keys, but as Bill relates:

We heard news from the condo on [Key] Marathon. Apparently they had an eight foot surge go through which flattened the condos not on stilts (ours was), did the same for the office, and somehow burned down the clubhouse. (What kind of water-reactive chemical were they storing in there?)

So, I guess they need to rebuild and get occupancy permits again, so that kills our vacation next week.

My guess is that they were storing sodium. But as to why, I don't know.


This wouldn't be so bad …

It's been raining all day today.

Which means that the likelyhood of power being restored to Casa New Jersey today has been reduced to about a thousandfold.

And the phone here at The Company has been ringing off the hook, only there's this annoying “beep … beep” at the other end. Not sure what that is, but it's getting about as annoying as the lack of power (okay, I'll shut up about that now).

I've also concluded that while I'm not going to participate in this years National Novel Writing Month, I should however, set the goal of actually writing about my trip to Las Vegas back in July. I have the layout I want to use. And the notes. And the pictures. But none of the actual text. I started to write it, back in late July, early August, but I was approaching the material in a voice not my own and it really showed (awful … just awful stuff).

So screw it. Write it the way I write (and lately, I'm not very enamored with the way I write) and get the thing done this month.

Just as soon as I get power back.

Wednesday, November 02, 2005

Survival, Day 9 (or: The Future's So Bright, I Gotta Wear Shades)

The sky is cloudless. The weather is nice. I was able to get gas with no wait last night. And there's Good News™ about the power situation. But first, I must backtrack a bit.

Back when we lived in The Facility in the Middle of Nowhere, we met Bubba (his real name is Rob, but to keep him straight from Rob the ex-roommate, we'll call him Bubba—he doesn't mind), a nice fellow that still hangs around even though both of us moved away from The Complex. He comes by at least once a week now, at least for the weekly D&D game I hold on Sunday.

Well, this past Sunday, Bubba called Lake Worth Power and posing as the Mayor of Boca Raton, berated Lake Worth Power for their tardiness in restoring power to his friends' house. They told him that power would be restored by Tuesday.

An amusing stunt, but I would only believe it when I see it.

Well, Tuesday (while I was at work) FPL stopped by (note, it was FPL and not Lake Worth Power) Casa New Jersey and told Spring & Co. that they would be coming by tomorrow (which is, today) to restore our power. Hmmmm.

Another small digression: the street we live on is rather short, perhaps a half mile in total length, with a major road bisecting our street in half (we live at the south end of the street).

Well, as I was leaving for work this morning, I saw a power truck (that I took to be FPL, although I couldn't make out which power company it really was) at the far north end of the street.

So it's likely that we'll be getting power today, but no later than tomorrow.

Also, I just received the follow email from Spring:

The Lake Worth Power dude came to our place about noon or so and went up in the bucket truck. He then proceeded up the street, upstream in the power supply. He projects we'll have power tonight.

He also lamented that LWP are not as beloved as FPL and are not able to score the good free food like the big guys can. We offered him blueberry muffins and coffee, but he said he just ate.

Things are definitely looking up …


O frabjous day!

Just got the news: We have the power!

Woot!

Thursday, November 03, 2005

Things I Have Learned Lately

Much like Spring, I too, will list some things I have learned through Hurricane Wilma.

Sunday, November 06, 2005

The good news is: I can fix it!

We use MRTG to monitor bandwidth at The Company. I've recently been tasked with taking over the monitoring machines for the network overall. I had to reinstall the operating system on one of the two monitoring systems, and once I get things settled with that server, I can then move on to reinstalling the other monitoring server.

If I weren't so darned diplomatic, I'd call MRTG a piece of XXXX, but I'm not like that, so let's just say that MRTG has it's problems.

I installed MRTG a few weeks ago but you'd never know it as random logfiles seem to get truncated mysteriously. So, now that things have more or less returned to normal, I start looking into this.

MRTG is buggier than a flea circus. I get a lot of this:

Use of uninitialized value in concatenation (.) or string at /usr/bin/mrtg line 1197.

Oh, guess what? MRTG is written in Perl.

Lovely.

Checking out the offending line:

        print HTML <<"TEXT";
<!-- maxin $peri $$maxin{$peri}{$router} -->
<!-- maxout $peri $$maxout{$peri}{$router} -->
TEXT

So, it's unlikely that $peri is undefined due to the context (it's the index of the loop this code appears in), so that leaves $router, %maxin or the hash referenced by $maxin{$peri}. It doesn't really hurt the program that one of these is undefined (since in a string context, Perl returns an empty string for an undefined reference or scalar or whatever is undefined at this point) but I get the warning anyway because the programmer added a use strict, which is used to track down such problems (I guess, otherwise, why use it?). I'm guessing that this isn't normally supposed to happen, and is indicative of a deeper problem in the code.

Somewhere.

And it's not like it happens on the same log file. No, that would be too easy. Nope. It just randomly changes on which log file it's spewing this out on.

I thought that it might have something to do with the 95th percentile patch, but nope. That's been temporarily disabled and the errors are still cropping up.

Another lovely error I keep seeing:

Rateup WARNING: /usr/bin/rateup Can't rename uplink.tmp to uplink.log updating log file

MRTG uses a program called rateup to store the actual information. This time, rateup is a C program and the error code is less than stellar—why couldn't you rename the file? Would it have been that hard to print out the system error?

But this is open source, right? I can modify the code myself to include more information. So I grab the source code to the version of MRTG that's installed, and go to compile rateup

checking for gd.h... no

** Ooops, one of many bad things happened:

   a)  You don't have the GD library installed.
       Get it from http://www.boutell.com, compile it and
       use either --with-gd-lib=DIR and --with-gd-inc=DIR to specify
       its location. You might also have to use --with-z-inc,
             --with-z-lib and --with-png-inc, --with-png-lib for gd
             versions 1.6 and higher.  Check config.log for more
       information on the problem.

   b)  You have the GD library installed, but not the gd.h
       header file.  Download the source (see above) and use
       --with-gd-inc=DIR to specify where the file can be found.

   c)  You have the library and the header file installed, but
       you also have a shared GD library in the same directory. 
       Remove the shared library files and/or links (e.g. 
       libgd.so.2.0.0, libgd.so and libgd.so.2).  This is especially
             likely if you're using a recent (post 1.8.4) version of GD
       and didn't configure it with --disable-shared.

   d)  You have gd library installed and also it's headers, but you are
       missing libpng (and headers) or freetype (and headers)
       (mrtg does not use freetype, but if your copy of gd is precompiled
       against it, you have to install it ... 

   Consider following the instructions in doc/mrtg-unix-guide.txt

Okay, but this is a fresh Fedora Core install, so I should be able to use the package manager to install the GD developer libraries. All I need to do is find out what it's called:

GenericUnixPrompt# yum search gd

Ten minutes later, nine of which were spent updating the master list with a bazillion packages that have been added and/or updates since I installed about three weeks ago (and it seemed like it upated the master list multiple times no less!) I finally got a list of a few zillion matches.

So I run the command again, only this time redirect the output to a file that I can search. I find the package I need:

GenericUnixPrompt# yum install gd-devel

A minute goes by while it updates the half-zillion packages that have suddenly upgraded in the past two minutes, and it's asking me if I want to install half a dozen development libraries, including the X Windows development libraries!

No!

No!

I don't care for the X Windows development libraries.

But the package maintainers don't care about my wants! They, in their infinite wisdom, have decreed that if one wishes to develop using GD, then one must also with to develop with X Windows.

Sigh. What's another 10 megabytes of wasted disk space?

Hack. Hack. Hack. Compile. Install the new rateup.

Now I get:

Rateup WARNING: /usr/bin/rateup Can't rename uplink.log to uplink.old updating log file [No such file or directory]

Okay … so what happened to the log file?

And a missing log file only rates a warning?

This is some well written software here.

Ah well … back to debugging other people's code.

Monday, November 07, 2005

“We know better than you … ”

I think I figured out the problem with MRTG and the missing log files.

You see, when I installed the operating system, one of the optional packages to install was MRTG. So I decided to install it. But unbeknownst to me (and totally unconfigured mind you) as part of the installation, it was already added to cron but not as part of the file you get when you run crontab -e (because you know, just by the act of installing the software you must want to use it immediately, even if it isn't fully configured yet, right?).

So every five minutes, two copies of the software were being run.

So no wonder the log files were getting munged.

Grrrrr.

You'd think that after ten years of Unix administration I'd get the hang of things, but nooooooo! I guess I still expect to have to configure packages and add them manually to cron if I want them.

Tuesday, November 08, 2005

Sigh

I really had to wonder what I did to earn my current project.

I think I've mentioned several times how much I dislike control panels (yes, I thought I did … here, here, here, here, here, here, here, here, here, here, here, here, here, here, here and here). And yet what do I find myself doing as a project?

Installing yet another control panel.

Since we don't currently use this one, I will name names for the one Smirk has in mind—Web-CP. Smirk wants to use it since the price is right (free as in beer). And yes, I can understand his reasoning for this and in fact, I can agree with him.

But that doesn't mean I like the darned things.

Especially this Web-CP thing. I don't really know what to make of the following post on their support forums:

The goal of this post is not to intentionally make anyone mad, put off or making you feel inadequate where linux is concerned. However, it is assumed you ARE VERY familiar with linux - no matter what distribution you use—this software is NOT for a newb Linux user—it requires an above average knowledge and skill to install, run and maintain. Not only linux, but php, mysql, html and about 15 other packages that it takes to run webcp.

READ THIS BEFORE YOU POST PLEASE

“Newb Linux user?”

But besides that … 15 packages in addition to PHP, MySQL and Apache?

But besides that … it takes a skilled user to use? That's the part (well, one of the parts) I have qualms about this package. The way it's worded makes it seem like it requires a skilled person to use the package, which isn't why Smirk wants the thing. Smirk wants a control panel to let a person manage their website—you know, add subdomains, users, email addresses, databases, that type of thing. Simple stuff like that. But using the online Web-CP Demo doesn't instill confidence that this thing will be simple to use.

For one thing, the navigation is horrendous, leading to a horrible user experience. There are also limited actions and it's hard to see how to actually manage a website. Granted, this is a demonstration, but given that there's fairly complex but quite terse, installtion instructions involving the installation of 18 packages (including the custom compilation of PHP so you can run PHP scripts from the command line) it's not something that is … um … easy … to test (and yes, I've mentioned to Smirk several times just how … um … convoluted … the installation is) to possibly get around several demonstration based limits (not to mention that it's only supported for Fedora Core 1—anything else and you are pretty much on your own—needless to say, the distribution we're using means we're pretty much on our own).

Blah.

So, not only do the various Linux distributions insist on adminstrating the systems as they see fit (and it gets back to a saying I've heard: “when you've seen one Unix system, you've seen one Unix system”) but then you have to twist and contort a possibly annoying administration system for use under a control panel that insists on doing things their [the control panel's] way. So what I'm really grousing about is that not only do the distributions not work the way I expect a Unix system to work, but the control panels can't be made to work the way I expect a control panel to work (that is, if I actually liked using control panels, which I don't).

I'm seriously considering that it may be easier to write a simple control panel that it would be to adapt some mutant PHP-based control panel.

[Smirk did give me an option to swap projects with P, which is setting up the backup system which has to deal with both Insipid and Blech … and honestly, I don't know who has it worse!]

Tuesday, November 15, 2005

Catching up

From: <XXXXXXXXXXXXXXXXXXXXXX>
To: <sean@conman.org>
Subject: Indolence…
Date: Tue, 15 Nov 2005 01:11:38 -0500

Mark says you're falling down on the job. (No posts since last Tuesday??) Actually, that's not how he put it, but I felt compelled to sanitize, since I don't know you.

Yes, things have been quiet since last Tuesday. I blame it on control panels (and no, I'm not bothering to link to the umptzillion posts I've made on control panels this time). But just as things were their darkest, Smirk pulled me temporarily off that project and onto more important things, like configuring a router for the DSL service we'll be offering (and the best part—I'll be getting free Internet service again! Unlimited static IP addresses! The ability to fix routing problems! The ability to control my own reverse DNS! Woot!).

Since I got MRTG playing nicely, I went ahead and installed Cacti, a type of “next generation” version of MRTG and a lot nicer to work with. Yes, the interface is a bit klunky, but I can understand why it's klunky the way it's klunky (you define your device and the type of monitoring you want. You then select the actual items you want to monitor and the type of graphs you want to generate (you can generate multiple types of graphs from the same data source). Then you create the graphs, and add them to the viewing tree) but it sure beats MRTG (where you hand generate the configuration file, then hand generate a page with links to the various graphs, unless you like looking at a raw directory dump in your web browser). Hopefully, the reports Cacti generates are good enough for Smirk to use and we can retire MRTG.

And to make matters better, I no longer have to install Web-CP. Granted, it's a different one I have to install, but the new one (still haven't come up with a pseudonym for it) seems more reasonable than Web-CP.

In other news, my friend Bill Lefler send me the link to his blog, so now Mark has another programmer's blog he can read while waiting for me to update mine.

Monday, November 21, 2005

Overheard conversation at a place of employment wherein the employer asks the employee about the relative lack of posts in the recent past of the employee's blog.

“You haven't updated in a while, have you?”

“Nope, not really.”

“You might have to hire a ghost writer.”

“Possibly so.”


Alive and well on Ganymede

Again, a week (or so) has gone by with nary an update.

Thing is, the past few weeks I haven't really had the gumption of writing entries, and it's not like I have a good excuse like I'm deep into writing for National Novel Writing Month (hardly—I didn't fool myself this year with thinking I would finish); it's just that I … don't really have much to write about.

Even I am tired of ranting about control panels and Cobalt RaQs.

I am, however, conversing with my friend Bill Lefler through his blog about the future of carbon paper (and part II of the future of carbon paper).


Harry Potter and the Goblet of Fire

Tonight the Brood (Spring, Wlofie, The Kids and I) saw Harry Potter and the Goblet of Fire, the latest film in the ongoing saga of an orphaned kid who's also a wizzard.

The book was the longest and perhaps the darkest of the saga so far, and unfortunately, the movie suffered because of it. The whole first half of the film felt too jumbled and cutup (much like the entirety of David Lynch's Dune) but the second half flowed much better (but the the book was better, as is almost always the case with a movie).

My other two complaints with the film: I still preferr Richard Harris as Albus Dumbledore than Michael Gambon. Mr. Gambon comes across as too forceful and less whimsical than Mr. Harris' soft spoken version.

And the other complain: not enough Snape! The most interesting character in the whole series, and only a few minutes of screen time.

Tuesday, November 22, 2005

I've got the power (but how much?)

Sitting at an idle Gnome desktop, this thing sucks up 153W of power. I was almost scared to push it. But I did anyway.

Pulling Linus' latest git tree into my local tree sucked up 216W of power at its peak.

Just when I thought I'd seen it all, a -j4 kernel compile of that same tree pulled 258W.

I no longer leave this box on 24/7.

Via Robot Wisdom, Fun with power

Dave used the Kill-a-Watt to measure the power consumption of his equipment. I think it's something we could use at Casa New Jersey, since our power bills are a bit high (then again, we do use Lake Worth Utilities, which charges more than FPL).

Monday, November 28, 2005

Colors

I awoke screaming.

At least, it felt like I awoke screaming, but I doubt I was actually screaming because no one came rushing into the room to see if I was being attacked by a hooked-handed lunatic. In fact, I think it was the dryer that was doing all the screaming—someone had forgotten to close the door to the dryer. [It just so happens that the dryer is in a closet in the master bedroom, while the washing machine is in the hall just outside the master bedroom—mostly due to space limitations in Casa New Jersey.]

Somehow I managed to close the door, pick up my cell phone, and make my way into the main part of the house, all without killing myself. I saw Spring, and what I wanted to say was, “Ah, my dear Spring. Would you be so kind as to call Smirk on my cell phone and inform him that I am incapacitated and unable to to travel to the office today and that I shall remain home in bed where I belong? Thanks.” What I think came out was something along the lines of “Oook. Aak. Smirk. Call. Okay.”

“Sean,” said Wlofie, “don't take this the wrong way—”

“Okay,” I said.

“But you don't look that well.”

“Okay.”

“Why don't you get back into bed,” said Spring.

“Okay,” I said.

“I'll call Smirk.”

“Okay.”

I stumbled back into the room, crashed into the bed and proceeded to have dreams of thousand legged spiders surrounding the house.

It was only later did I realize I must have nearly overdosed on a combination of Guaifenesin and Dextromethorphan. Or in other words, Tussin.

Yeah, I'm a light weight when it comes to drugs.

I've been fighting a cold since probably Wednesday, definitely by Thursday (Thanksgiving). I had thought I pretty much licked it by last night, but there I was, at a party falling asleep admist a Bacchanalian ruckus of drinking games.

By the time I got home (and no, I didn't drive), I was tired of everything, including sleep, and I ended up staying up until I was tired enough of everything to fall asleep and around 7:30 am, I took (what turned out to be) one final dose of cough syrup and fell asleep.

Only to wake up to a screaming dryer at … some point later in the morning.

Tuesday, November 29, 2005

She's done the hard part

Congratulations to Spring for finishing her NanoWriMo novel: Earth and Air: A Story About Attractions.

Woot!


No, I'm not kidding

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:b="urn:schemas-microsoft-com:office:publisher"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Publisher.Document>
<meta name=Generator content="Microsoft Publisher 10">
<link rel=File-List
href="faq1_files/filelist.xml">

If the above means nothing to you, consider yourself lucky.

The above is but a mere snippit from a page I had to help Smirk modify.

The above is the supposedly HTML output from Microsoft Publisher, which was used by the customer to render the web page. The fact that it only renders correctly (if it could be said to render correctly at all) under Internet Explorer is irrelevant to the customer—everyone uses Internet Explorer, right?

Right?

Forget trying to actually modify the Microsoftian HTML by hand—I spent perhaps an hour trying to locate a portion of the file that generated the content for one particular area of the page and couldn't pin it down fully. Add a large red border for this bit, okay, that's a bounding box for this bit of text. Move up a bit and add a large red border to this bit, and that's a bounding box for the bounding box for this bit of text. Move up a bit more, add a large red border and why is the border around that on the other side of the page that has nothing to do with what I'm trying to find.

Stuff like that.

This is the HTML equivalent of having a GOTO following every statement in a program.

Gave up on trying to modify 200,000 bytes of HTML (I'm not kidding—five files, all 40k in size) and redid the page (the task was to merge the five pages into one) in 1,322 bytes (a very simple <TABLE> based layout, which is what it took Microsoft 192,000 bytes to describe).

And as a side affect, it renders correctly in more than just Internet Explorer, and for that, I have to apologize. I just couldn't help myself (even if the design caused Spring to gouge out her eyeballs with a dull grapefruit spoon).


Feeling groovy

I'm feeling a little bit better today. No waking up to screaming appliances nor the inability to express myself as eloquently as a caveman. No, today, I was able to function well enough to get myself to work, which on retrospect, perhaps wasn't all that good of an idea, but hey, at least I'm in the recovery phase of the cold.


She's done the hard part

Congratulations to Spring for finishing her NanoWriMo novel: Earth and Air: A Story About Attractions.

Woot!

Wednesday, November 30, 2005

Feeling less groovy

Of course, feeling better is a relative thing when one has a cold, and today I'm feeling a bit worse than yesterday (although a bit warmer—I did remember to bring a sweater to work today). Part of feeling worse is how little sleep I got last night (or rather, this morning). Between not being sleepy at all, my runny nose and some chest congestion, it was very hard to fall asleep.

And when I did, it was around 6:30 in the morning.

I'll certainly be happy when this cold is over.


Don't forget your sippy cup

Instead, I'll share with you the results of a little between-classroom brainstorming about how office life could learn a little bit from grade school life.

So, in no particular order, here are some ideas for how to run your next Web 2.0 startup:

Via Jason Kottke, schoolwork

Back durring my first week at Negiyo, I kept having flashbacks to high school. The treatment of us peons non-management employees as kids. The long hallway down towards the cafeteria. The small desks. Being sent to the Principal's office HR department.

I thought I had died and gone back to high school.

But now grade (or elementary) school. Kindergarten through 5th grade. That wasn't so bad. And I could definitely deal with nap time. I wonder how Smirk would go for the idea?

Obligatory Picture

Trying to get into the festive mood this year

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

Obligatory AI Disclaimer

No AI was used in the making of this site, unless otherwise noted.

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: https://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

https://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.