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.

Thursday, June 02, 2005

Start of the Wet Season

When it rains, it pours.

Spring hands me a book on Creationism, with a section about dinosaurs during The Flood. Then a few days later, I come across Robert Lee's entry about The Creation Museum, which has a section on the dinosaurs during The Flood. And now a few days after that, we have theferrett, who also had a book about the dinosaurs and The Flood (only in that illustrated book, the dinosaurs perished because the Fallen Angels goaded them into a futile attack of Noah's Ark).

And since I posted about dinosaurs and The Flood, it's been raining like you wouldn't believe! My drive to work each day has been like this:

[The Start of Hurricane Season]
photo by Michelle Reagin

only with less visibility.

Sunday, June 05, 2005

Sign found while walking around the neighborhood one Sunday afternoon

[There be Pirates nearby … ]

Monday, June 06, 2005

… but here it's bulk wholesale!

Spring suggested we become members of Costco, a wholesale warehouse grocery store type place were not only do you pay wholesale prices, but you buy in bulk.

And when I say bulk, I'm not talking about 10 pound pags of sugar either—more like 25 to 50 pound bags.

I can't even begin to find words to describe my reaction to Costco. Whereas food shopping at Wal★Mart was shocking on the price, at Costco, where I realized the prices would be cheaper (per unit price, not per package price—cans of Coke went for a bit under 25¢ per can) but I wasn't prepared for the sheer amount you end up buying (sure, you can get cans of Coke for a bit under 25¢ but you end up buying 32 cans at a time). The smallest box of Ritz crackers was huge—turns out it contained four regular boxes of crackers.

Eggs? Two dozen.

Cheese? Six pound blocks of the stuff.

Tuna? Three (or was it four?) pound cans.

TVs? 72″ HDTV units down isle 8 (and you think I'm kidding).

Just … wah! (Oh! Look at that! A five gallon bucket of hamburger pickles)

Tuesday, June 07, 2005

Me on cold medication

We were somewhere around Barstow on the edge of the desert when the drugs began to take hold. I remember saying something like “I feel a bit lightheaded; maybe you should drive … ” And suddenly there was a terrible roar all around us and the sky was full of what looked like huge bats, all swooping and screeching and diving around the car, which was going about a hundred miles an hour with the top down to Las Vegas. And a voice was screaming: “Holy Jesus! What are these goddamn animals?”

Then it was quiet again. My attorney had taken his shirt off and was pouring beer on his chest, to facilitate the tanning process. “What the hell are you yelling about?” he muttered, staring up at the sun with his eyes closed and covered with wraparound Spanish sunglasses. “Never mind,” I said. “It's your turn to drive.” I hit the brakes and aimed the Great Red Shark toward the shoulder of the highway. No point mentioning those bats, I thought. The poor bastard will see them soon enough.

It was almost noon, and we still had more than a hundred miles to go. They would be tough miles. Very soon, I knew, we would both be completely twisted. But there was no going back, and no time to rest. We would have to ride it out.

Fear and Loathing in Las Vegas
–Hunter S. Thompson

Pretty much sums up today.

Thursday, June 09, 2005

“… but I wouldn't mind being on ‘1970s House’”

After watching Frontier House, a “reality TV” show about three American families that have to live as if they were in 1883 Montana—all I have to say is that I was never under the impression that times were simpler and better in the past. I appreciate the conviences of modern life like, oh, hot-n-cold running water, electricity, central air and Coca-cola, not to mentions things like Band-aids and the Internet.

But I will say that the families, after spending five months living a frontier experience, looked much healthier. Granted, if they lived like that for five years (which is what it took to get the full claim to a homestead in the 19th century) they wouldn't look nearly as good, but five months of hard labor exercise and healthy eating certainly did wonders.

Saturday, June 11, 2005

Pictures taken at night in the yard of Casa New Jersey

[It's not easy being green] [I'm ready for my close-up, Mr. DeMille] [Rocky Road I] [Rocky Road II]

Tuesday, June 14, 2005

help me i'm melting

It's a good thing I have a refrigerator full of ice cold Coca-cola here at The Office, because there's a problem with the A/C and it's a sauna in here. I have the front door wide open because it's actually cooler outside than it is inside.

And we're taking Florida in June!

So now it's back to slowly melting …

Wednesday, June 15, 2005

Gold fever

Many years ago while I was working in college, working part time at IBM and living at home (meaning: having fun, making an insane amount of money for a college student with no real expenses) I was invited to a poker game by some friends of a friend. The fact that I had (and still don't have) a mind for cards nor what hands beat what hands in poker was no deterrent (mistake numero uno)—in fact, I was made quite welcome.

So I arrived at the game with quite a bit of my weekly paycheck in the form of liquid cash (mistake number two). I bought into the relatively low stakes game and off we went.

And for my first poker game, I was quite lucky with the cards (mistake number three). Made some profit and quickly stuff it into my wallet (mistake number four) and continued playing.

Of course as the game ran on I ran out of money on the table. Not a problem, I thought. I'll just take some of the money I just made at poker and use that (mistake number five, and of all the mistakes, this was the biggest one).

Time passes. Money passes from my side of the table. Money passes from my wallet (it's still won money) onto the table. Time passes. Money passes from my side of the table. Money passes from my wallet (it's still won money). Lather, rince, repeat. Reach into my wallet to find a lone $5 bill.

It was not a pleasant feeling knowing one has just increased the liquidity of others, especially when those others are people I don't even know.

From that point on, I made a conscience decision never to gamble, especially poker. It's an expensive vice, and frankly, there are other vices that are just as expensive but more pleasurable (just as long as you can keep your kidneys).

Of course, of everybody I know, I'm the one that's been to Las Vegas the most.

Of course.

And I'm headed there again next month.

My friend Hoade is writing yet another novel, a good portion of which takes place in Las Vegas, so he's going out there for research. And he wants a guide, having never been there. And as the only person he knows that's been there, I get to be his guide and mentor to the experience that is

VIVA LOST WAGES!

During the planning of the trip the topic of a tax break for the smart gambling came up and where the only two games one can make money are blackjack (but only if you count cards and take a risk of being politely thrown off the roof by casino security if they catch you) and poker (where, since you're playing against other players, not the house). And then roulette.

A wheel with 38 slots (American—European has 37) numbered 1 through 36, half of which are red, the other half black, with 0 and 00 (both of which are green). The payoff is based around a wheel with 36 slots, so the addition of two slots (0 and 00) give the house a 5.26% edge over the long term (although there is one bet you can make that gives the house a 7.89% edge).

And there are more systems to play roulette than any other house table game, trying to get around that house edge (the European wheel, with only 37 numbers, has a house advantage of 2.63%).

I know this.

I got enough of this from my Dad (who works in a casino) and from several general math books to know this.

And yet, that didn't stop me from spending the past few days coming up with a roulette system and testing it against a roulette simulator I wrote.

I'm not exactly sure what prompted me to do this, but I did, and I came up with a system that my simulator showed as giving me an edge over the house. A long term edge over the house.

Not only did I come up with the Holy Grail of roulette systems, but a Holy Grail roulette system with a

13.16% edge over the house!

Of course I looked for flaws in the code.

Sure, I found a few, but that 13.16% edge was still there.

Hoade was skeptical—heck, I was skeptical and asked around a bit for help, but no one here knows 1) enough statistics and probability to point out the error, 2) enough programming to point out the error and 3) enough about roulette to point out the error (other than “there's a house edge—you've really beat it?”). Hoade ended up playing a free online version of the system I came up with, and between clarifications in email, reported back that he wasn't seeing the expected payouts.

Meanwhile, I was busy with the simulator, generating data and making numerous graphs (gnuplot rocks) of expected payouts and bankroll over time and testing the simulator.

I'd run, say, 1,000,000 spins betting black, and sure enough, there's the house edge of 5.26% (give or take a tenth of a percent). Another million runs betting column 3 (house edge of 5.26%). Or the five number bet (house edge of 7.89%). Then I do my system and see that magical edge of 13.16% towards me, and the bankroll reaching skyward.

It was very hard not to get caught up in this. I mean, people are happy with a 10% ROI with regular investing, here I'm getting a bit over 13% for just sitting in a noisy casino, placing bets for black, odd, 1-18, column 3 and the Five Number bet per spin of the wheel for hours on end. How can you not get caught up?

By knowing my system doesn't work, that's how (but I get ahead of myself).

I eventually talked to my Dad, given that he works at a casino and all. I found out that I know a bit more about roulette than Dad does, but he did give me some valuable hints (“Roulette is an old game, and if there was any way to beat the house, it would have been exploited by now,” was one. “Roulette wheels always have a bias—you're not taking that into account in your simulator, are you?” was another).

It was the hint to include some bias into the wheel that shed light onto my system. I added a slight bias to the area of the wheel that has the lowest payout in my system (the numbers 32 and 34 are the only two numbers where I loose all five of my bets) and I still come out ahead.

Okay, increase the bias, and I still come out ahead.

Okay, increase the bias such that the ball will always land on a spot where I should loose the perverbial skin off my back.

I'm still coming out ahead.

Other bets like black, or odd, you can see the bias.

So I went through the code more carefully this time. Okay, the bet for odd was actually an even bet (but the payouts are the same, so I didn't notice). And the bet for column 3 was for column 1 (but again, the payouts are the same, so it was hard to notice). And the bet for low would always add to the winnings, dispite what happened (and not too surprisingly, this was one bet I didn't bother testing, and of course, always adding to the winnings would give one an edge).

Once fixed, I saw the Holy Grail of roulette systems come crashing down to an edge of 5.79%.

In favor of the house.

Sigh.

But it does explain one bit. Earlier in an email exchange with Hoade, I drew up a table of wins vs. loss for every possible combination of bet and number (38 numbers, five bets each). But when I first tabulated the results, it didn't jibe with what my (at the time, incorrect) simulator said (and I know realize that my initial tabulation by hand was correct), so I did what any self-respecting person would do—I fugded the results until it at least jibed in the general direction of my simulator (in fact, my jibes overstated the winnings by a factor or two, but).

So much for wealth at the expense of casinos.

And this time, I swear I'm giving up gambling.


The Secret Google Sauce is revealed!

How many years did you register your domain name for?

If it's only one then that's a point against you in Google's eyes.

Why?

Because the majority of Spam websites only register a domain name for one year. A domain registered for a longer period implies that the owner is more likely to be legitimate and serious about their web site.

This is just one of the unusual factors now considered by Google when indexing and ranking a website. Factors you could never even have guessed at in some cases.

How do I know this?

Google have recently filed United States Patent Application 20050071741 on March 31, 2005.

In which many of the search giants secret ranking criteria is revealed and it makes very interesting reading. You have got to read this if you're serious about ranking well in Google. The days of Spaming Google are drawing to a close. With this patent they reveal just how hard they're coming down on Spam sites. You Do Not want to get caught out.

Via Robot Wisdom, Great Site Ranking in Google The Secrets Out

I suspect Google is doing this to help stem the tide of Google spam. By giving the search engine optimizers the guts of their Page Rank algorithm (or a good portion of it) they may be trying to say “Hey! Stop playing around with links and pages with loaded words—they won't work and here's why!”

But the suggestions made in the article are ones I pretty much already follow and has been common sense for quite a while now.

But those search engine optimizers—I suspect they needed a swift kick in the rear to get with the plan …

Thursday, June 16, 2005

“Oh, I see the problem—you're trying to add a pterodactyl to a gluon and you just can't do that … ”

I spent most of my time at The Office today working on the web-based security cam for our data center. The actual camera is working fine and the images are accumulating on a server—the stuff I was working on today involves browsing the ever accumulating pictures.

The first major decision I had to make (and this is a project I've been working on for the past couple of weeks) is whether to generate static pages (as the images are mailed in) or do a completely dynamic site. There are arguments for both ways; the pages won't change all that much—during the day only the main index page for the current day, then at midnight the index page for the current month, then once a month the current page for the year and while I personally like this idea (a form of early binding if you will) there are a few downsides: one) it's even more files to store and two) if there's ever a design change, all the pages will have to be regenerated.

A dynamic site, however, only requires a few additional files for the program, and changes to the site take effect immediately, but the page(s) have to be built (and built and built) for each request, which involves quite a bit of disk I/O (to get image filenames namely).

I ended up going the dynamic route—Smirk wants to store the images for as long as possible so the less overhead (in this case, static web pages) the better. Also, it's not like we have to support heavy network traffic—only one, maybe two people at a time may be viewing these, and only if there's a problem with missing tools.

Also, since Smirk is a fan of PHP (Why? I don't know … ) so I figured this would be a good chance to get a feel for programming in that … language.

I do not like it, Sam I am. I do not like PHP and ham.

The whole global variable thing I'm ambivilent about. PHP is unusual (for the languages I've used) in that you have to declare which variables are global every time you use them, like:

$g_base = "/some/random/path";

function display_file($template)
{
  global $g_base;

  for ($this->m_i = 0 ; $this->m_i < count($this->m_files) ; $this->m_i++)
    load_template($g_base,$template);
}

(why yes, I am using objects in PHP, and yes, the looping variable is part of the current object so I can support templates, but that's not important right now)

Unlike most languages I've experienced, if you do:

$g_base = "/some/random/path";

function display_file($template)
{
  for ($this->m_i = 0 ; $this->m_i < count($this->m_files) ; $this->m_i++)
    load_template($g_base,$template);
}

the language looks first to see if $g_base is defined within the function, and if not, looks to see if it's been defined outside of the function and if so, uses that. PHP, on the other hand, will just assume you want a new local variable named $g_base and not even bother looking elsewhere, hense the need to declare $g_base as being global within display_file().

Not something I'm used to.

But I can see why it's done that way and can't really argue with it, but I keep forgetting about that, expecting PHP to handle lexical scoping.

I also find the gratuitous use of dollar signs annoying, but at least PHP uses it in a consistent manner:

var $scalar;
var $array = Array();
var $hash  = Array();

$scalar            = 0;
$array[0]          = 1;
$array[1]          = 2;
$hash ['brownies'] = "are good";
$hash ['hashish']  = "is illegal";

unlike Perl, where the declarations of scalars, arrays and hashes use different symbols:

my $scalar;
my @array;
my %hash;

so I would expect Perl to work like:

$scalar   = 0;
@array[0] = 1;
@array[1] = 2;

# NOTE---Perl uses {} instead of [] for hashes!

%hash{'brownies'} = "are good";
%hash{'hashish'}  = "is illegal";

but nooooooooooooooooooo! It's back to the dollar signs:

$scalar           = 0;
$array[0]         = 1;
$array[1]         = 2;
$hash{'brownies'} = "are good";
$hash{'hashish'}  = "is illegal";

But I come to bury PHP, not Perl.

The biggest sticking point I have with PHP (and I have the same issue with Perl as well) is the lack of type checking—a variable could be a number, or a string, or an array, or an associative array (aka hash table) or a pterodactyl. This means you can do stuff like:

$fourscore = "80"; //note-this is A STRING
$seven     = 7;    //note-this is A NUMBER
$yearsago  = $fourscore + $seven; //Do you get 87 as
                                  //A STRING or as
                                  //A NUMBER?  It's BOTH!
                                  //It's Hiesenburg programming!
                                  //Wheeeeeeeeeee!

But something like:

$bills   = Array();	      //note-this is AN ARRAY
$account = 400;		      //note-this is A NUMBER
$money   = $account - $bills; //What now?

will most likely blow up.

At run time.

And while it's clear what's wrong with the code above, it's not quite so clear in the following:

$bills   = get_the_bills();
$account = 400;
$money   = $account - $bills;

Hope get_the_bills() returns something that can be subtracted from a number. Or was it sum_the_bills() that returns the number? (certainly ignore_the_bills() is not the right thing, although that is tempting, and I'm digressing).

I suppose I'm too used to strongly typed langauges where the compiler nickel and dimes you to death about types so I don't have to keep all those details in my head (the computer is more capable of keeping track of details like so I don't have to).

So I'm having to constantly remind myself that $g_baseobj->m_subobj is a “month object” (not a “day object”) in this portion of the code, and that find_entry() returns a number (the index into an array), not the entry itself (although perhaps I could rename that function find_index() instead … ).

Object support in PHP isn't that bad—certainly nicer than Perl, but again, the serious lack of type checking makes it difficult to track down problems, and the error messages it gives could be more informative (“Okay, it's nice that I didn't call parent::init() with the correct number of parameters, but which call to parent::init() was incorrect—who or where was the call made from you XXXXXXX piece of XXXX?”).

It's always nice to know that “PRINT debugging” will always be alive and well.


“We gots an offer you can probably refuse … ”

Well, that was fast.

Not one day since I wrote about roulette and Google's page ranking algorithm, and I get:

From: "Norman" <norman@1-gambling.us>
To: sean@conman.org
Subject: Links exchange with http://boston.conman.org.
Date: Fri, 17 Jun 2005 02:55:56 +0400 (MSD)

Hello Webmaster,

We have been looking for partners to exchange links with our sites. Our sites have good traffic, and make quick market penetration, so, I hope our positions in lead search engines will be rising very fast.

If you decide to link to our websites,please use the following linking details:

and send us the exact location, and your site information:
Title, Description, and URL
We'll add your resource to our sites shortly.

URL: http://www.1-baccarat.us [yeah—like I'm going to link to these sites! –Sean]
Link Title: Baccarat
Description: All about Online Baccarat For YOU!

URL: http://www.1-black-jack.us
Link Title: Black Jack
Description: Blackjack is one of the most popular table games in the casino.

URL: http://www.1-gambling.us
Link Title: Gambling
Description: 1 Gambling US—Welcome to your complete online source for gambling information and links!

URL: http://www.1-internet-casino.us
Link Title: Internet Casino.
Description: The best online directory of casinos!

URL: http://www.1-poker-game.us
Link Title: Poker Game
Description: You will find information on how to play the game of poker, information about the types of poker, and what you can expect in an online poker casino.

URL: http://www.1-craps.us
Link Title: Craps
Description: 1 CRAPS US—Online Craps for YOU!

URL: http://www.1-poker-online.us
Link Title: Poker Online
Description: 1 Poker Online—the best online directory of where you can find many links to poker games!

URL: http://www.1-poker.us
Link Title: Poker
Description: 1 Poker US—The Best Online Poker.

URL: http://www.1-roulette.us
Link Title: Roulette
Description: 1 Roulette US—Roulette Online.

URL: http://www.1-slot.us
Link Title: Slots
Description: 1 Slot US is the best online source for online slot machines, poker slots, fruit slots and money slots like you have never seen before!

Best regards,
Norman Robbins
norman@1-gambling.us

I'd be wary of actually visiting any of these sites—redirects to hell and back and there's no telling how many popups or malware might be lurking there.

But Norman sure was quick …

Friday, June 17, 2005

Dvorak Card Game: The Time Cube Deck

Dvorak is a card game where all of the cards start out blank; players choose a theme, make up enough cards to get started, shuffle and deal, then add further cards to the game as the game progresses. It provides you with enough rules to start a game, but leaves the theme and the depth up to you.

You can use it as a skeleton for making a solid and standalone card game, you can play it as an experimental or cut-throat Nomic, you can use it to kill half an hour drawing silly pictures and forcing your friends to make drinks, you can throw together an amusing card game based on your favourite film or sport or in-joke—it's blank cardboard, it's fairly multipurpose.

Dvorak—A Nomic Card Game

Sounds a lot like 1000 Blank White Cards only there is a structure and the decks have a more coherent theme to them than your typical 1000 Blank White Card deck (well, as “typical” as a 1000 Blank White Card deck can ever be), but like all Nomic based games, the rules are fluid enough to change—if you so want.

The Time Cube Deck looks fun, although it won't make much since unless you read the site it's based on (warning: Crank Dot Net labels that site as “illucid”—and for good reason!).

Tuesday, June 21, 2005

You know he got paid by the word, right?

7. David Copperfield by Charles Dickens

Unknown novel by little read author. (This could also have been Great Expectations or Oliver Twist, but Copperfield is the one where, for me, the disparate elements that make up the wonder of Dickens come together.)

Via Robot Wisdom, Wesley Stace's top 10 books about children aimed at adults

Unknown novel?

Little read author?

I'm not sure what they teach for literature across the pond, but here we got Dickens up the wazoo! I remember reading A Christmas Carol by Charles Dickens (at 100+ pages, this would be a “short story” by Mr. Dickens) and finding it okay, but I was also forcefed Great Expectations in 9th grade and hated it (and at 500+ pages, this would be a “novella” for Mr. Dickens). But “little read author?”

I can only hope that Wesley Stace was being droll …


“So why don't they kiss already?”

For Spring, the Bollywood FAQ (via kisrael.com). Included are explainations for ear tugging and pinky wagging.

Friday, June 24, 2005

Because all the other cool kids are doing it …

Take the MIT Weblog Survey

Saturday, June 25, 2005

A summer samhain

The grass had basically collapsed under its own weight, creating a frightening black hole in the thick green expanse of the backyard. “It might be time to mow the lawn,” said Stephen Hawking, making an impromptu visit to study the phenomenon (ba dee bedebe).

“I think you're right,” I said.

Not up to the task of dealing with the back yard, I decided to first tackle the front yard—besides, that's the first thing anyone sees and frankly, I don't want to have to explain Maximilian Schell and his zombie army to passing motorists. Besides, the grass in the front yard has yet to reach critical height, being only three feet or so high (the section of backyard that had collapsed had reached four feet in height).

So I spent the next few hours in the afternoon as Samhain, only an American-mongrel Samhain with an electric weed eater, not a Celtic Samhain with a particularly large scyth.

Back and forth, back and forth, back and forth. Stop to remove foot long strands of grass blades from the weed eater. Then back and forth, back and forth. Stop to rake the dead grass out of the way. Couple of hours, leaving, not craters, but pits in the grass as I step my way across the yard.

But at six inches, the front lawn looks lush.

And at the rate I was going, it might take days to get the backyard finished. That is, if I can avoid falling into the event horizon.

Tuesday, June 28, 2005

Poetic Justice

Weare, New Hampshire (PRWEB) Could a hotel be built on the land owned by Supreme Court Justice David H. Souter? A new ruling by the Supreme Court which was supported by Justice Souter himself itself might allow it. A private developer is seeking to use this very law to build a hotel on Souter's land.

Justice Souter's vote in the “Kelo vs. City of New London” decision allows city governments to take land from one private owner and give it to another if the government will generate greater tax revenue or other economic benefits when the land is developed by the new owner.

The proposed development, called “The Lost Liberty Hotel” will feature the “Just Desserts Café” and include a museum, open to the public, featuring a permanent exhibit on the loss of freedom in America. Instead of a Gideon's Bible each guest will receive a free copy of Ayn Rand's novel Atlas Shrugged.

From Always Low Prices— Always? and via The Volokh Conspriacy, this press release

I can only hope this actually goes through …

Wednesday, June 29, 2005

The Band Du Jour

Not that it matters—Gorillaz is a virtual band. It doesn't quite exist. Its four members (2D, Murdoc Niccals, Russel Hobbs, and Noodle), designed and drawn by Hewlett, are fictional. The group inhabits Kong Studios, high on a mountain in Essex, northeast of London. There are no mountains in Essex. The band exists enough to make music, to produce videos, to remix, and to be remixed.

Albarn (music) and Hewlett (art) are the spirit behind Gorillaz. Their first outing, five years ago, remixed the whole idea of what a band could be. The iconography was grabbed from everywhere—sci-fi, anime, rock videos— while the music was a hip hop-based cut-and-paste of poppy melodies, old horror movie themes, and any sonic style available. The debut album, Gorillaz, sold an impressive 6 million copies worldwide, making it the most successful album ever by a virtual group.

Via metaphorge , Keeping it (Un)real

Like I keep saying, satire just can't keep up in today's world …


Reminds me of Sesame Street

B O S T O N
D I A R I E S

Spell with flickr (via Vestal Design Blog).


Exploding cans

Yesterday, I brought a 32-can case of Coca-cola to the office and unfortunately, I left it in the trunk for an extended period of time.

[Cans are not supposed to open this way]

I had my hands full when I first got to the office, so I meant to go back and get the Coke from the trunk, only I got involved with stuff and didn't get around to it for a few hours (round to'its are hard to find).

Two of the cans had “exploded” like this. The rest were fine.

Thursday, June 30, 2005

I then remembered … I hate Internet Explorer

Six months ago I whipped up a Flickr-in-CSS proof of concept page. Since then, Flickr has actually converted to using CSS and JavaScript where before they were using Flash and doing an incredible job. But when I saw Dan Lyke doing a variation on it, I decided to upgrade the “proof-of-concept.”

So, between answering support tickets and attempting to install Linux on a Cobalt RaQ4 (don't ask—it's not pretty) I sat there hacking away at improving the page.

Unfortunately, if you are using IE, don't bother checking it. I gave up after spending way too much time trying to support both Mozilla (which supports the latest standard for JavaScript ECMAScript) and IE (which is in a different ballpark altogether).

What I didn't want to do is:

if (document.getElementById)
{
  popUpWinStyles = document.getElementById(id).style;
}
else
{
  popUpWinStyles = eval('document.' + id);
}

everywhere (basically, if you support the standard document.getElementById() function, use it, otherwise use the Microsoft way. That adds just tons of if statements all over the code and tends to make debugging rather difficult.

I thought that maybe doing:

if (document.all) // are we Microsoft?
{
  document.getElementById = function(id)
	{
	  var obj = eval('document.' + id);
	  return(obj);
	};
}

would work.

And it would have too, had it not been for those meddling programmers!

I mean, it worked as far as adding the getElementById() method to the document object if it's Microsoft, but what I forgot was that in the standard, to set the color of an element is:

obj.style.color = 'blue';

whereas under Microsoft it's:

obj.color = 'blue';

The standard has all the CSS attributes under obj.style where as Microsoft just sticks them under obj—one layer up, as it were.

Grrrr.

But then … even adding all the if statments (which I wanted to avoid in the first place) was problematic as IE's support of CSS is … maddening.

So, I decided it was easier to just forget about IE for this.

It's not like I use it.

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

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.