Really, Hollywood?

I’m catching the start of the American Football season, a game between two very good teams that I find myself interested in despite myself. Often on Thursdays I go to a bar to have a beer or two and watch sports and crank out a blog episode or three.

I’m at home this week, a change that may merit its own episode, or maybe not. I’ve got the game streaming to my computer in our office, commercials and all. Ain’t technology grand?

I just saw an ad for a movie coming out sometime soon. It looks like a very expensive version of Rock ‘Em Sock ‘Em Robots. On closer look, the movie looks like… an expensive version of Rock ’em Sock ’em Robots that you watch rather than play. Much of the allegedly gut-twisting action is watching machines damage each other in a boxing ring. Yippee.

Although they give the movie some name that does not include the words ‘rock’ or ‘sock’, I would be very disappointed if at no time does one robot punch another robot in his shiny metal chin and make its head pop off.

Well, except for the part where I won’t actually see the movie at all.

2

A Side Effect of My Road Trip

Car commercials often show the vehicle in question cruising on high-drama two-lane blacktop, either in the desert, through pine forests, or perhaps on a twisty road along the coast.

When that happens, I don’t see the car. I’m trying to identify the road; there’s a good chance I’ve driven it and I might have a story to about it that I haven’t savored in a while. I saw one such commercial last night and afterwards while thinking that the road looked like a stretch of highway outside of Bakersfield I realized that I couldn’t even remember what color the car was.

It’s kind of like posing a sexy woman next to your product. You’ll get my attention, but I won’t be looking at what you’re asking me to buy.

More Evidence I’m a Lucky Man

There’s a commercial running on TV these days that features a stadium built out of sandwiches and snack foods. When this replica of Soldier Field is revealed, the rotund men assembled for the game gasp in awe.

The commercial runs on the Food Channel as well as during sporting events, so I’ve had the pleasure of watching it with my sweetie. Her take? A nice idea, but the field should be guacamole, not just some surface painted green.

If I ever need a replica of a stadium made out of munchies, I know it will be done right.

Exchange

I think it’s safe to say that I wouldn’t have bought this book, but the author is part of the Kansas Bunch*. Exchange is Dale Cozort’s first effort, and while it’s got a few warts, it has a lot going for it as well.

Bias alert: I know Dale. He’s a good guy. If I didn’t honestly like his book, I simply wouldn’t review it. Strangers don’t get that same courtesy.

I’m going to start by picking at the first couple of pages. Exchange wasn’t as clean out of the gate as it could have been. Logistically, I was confused, and though the situation was inherently confusing and hectic, I had drawn a mistaken impression of the perimeter of the exchange zone that fuddled me. Then there’s a paragraph of backstory about the protagonist’s daughter that sticks out badly.

“Uh, oh,” I thought.

Then the story gets cranking, the backstory info is covered gracefully again where it should have been, good people emerge, many more bad people emerge, and the most interesting people are the ones you simply can’t classify. I like stories with people like that. Everyone has their own agenda.

So here’s what’s going on: Every once in a while, a patch of our world switches places with a patch of an alternate Earth. The exchange lasts a couple of weeks and then everything switches back. On the other world humans never rose, but many other mammals picked up a pretty good dose of intelligence to fill the void. There are some pretty clever critters out there, and the bats are freakin’ crazy. The mightiest of the alternate mammals are the bears, who can apparently shrug off many rounds from high-powered rifles (twinge of skepticism). Venturing out into the forests of Alternate-Earth is “going into bear country.”

I might have named the novel Bear Country.

While the bears are the poster-children of the more-dangerous mammals, it’s the monkeys you really have to watch out for, and the wolves are pretty gnarly, too. But there’s one other creature out there even worse than those. There are people out there, nasty ones, who stayed behind after previous exchanges.

There’s only a few hours notice before one of these exchanges takes place. During that time the city is evacuated as much as possible (it always seems to be a city that gets sucked to the other side) and the military moves as much stuff into the exchange zone as they can. Then of course there’s the crazies — also known as the protagonist’s former boyfriends — she sure can pick ’em.

[Flashback to alpha female telling protagonist something like “I don’t know why, but I think you will play an important role in all this.” Aargh. Note to self: if I feel the need to justify a big decision as a hunch on the part of the decider that way, better to just not. Either decide if this is where I want to spend my coincidence**, or restructure so there is no decision. But I digress.]

One of the cool things about this story is that I started to notice things that contradicted what the characters believed, and then the characters started to notice them, too, and question their beliefs. Give the alert reader a cookie! Another cool thing is that you start to see something much larger unfold, and anchoring it all you have a protagonist who must grow and accept her own shortcomings.

Something big is going on. Bigger than cities getting sucked temporarily into another, more dangerous world. There are hints, and at the end of this book much is explained. But not everything. The book has an end, a real true end, but there is still a lot more going on.

Here’s why you should buy this book: it’s got some warts but it introduces a great universe, some interesting characters (including strong females), and there’s a lot going on. Buy it to say, “Hey, Dale, you put yourself out there and I respect that. Keep going.” Also, the more of you who buy it, the more motivated Dale will be to write the next one. Could Exchange be better? Absolutely. Am I going the read the next one? You bet your sweet ass I am.

* I don’t think the Kansas Bunch knows they’re called this yet. Members of the Bunch who are reading this: get used to it.
** The coincidence is the moment in the story that transforms it from ‘this could happen to anyone’ to ‘this did happen to this particular person’. It’s why they’re in the story, and not someone else. A second coincidence… well, you better be Douglas Adams.

Note: if you use the above link to buy this book (or a Kindle
, or a new car), I get a kickback.

Bawk-bawk-baaaaawk!

Last night I was hanging out at a bar with a buddy of mine, and of course where alcohol is served there is also sports on television. Even when it’s only preseason football (not really sports at all), I’m unable to keep my eyes from wandering to the box with moving pictures. Also, it seems I’m unable to avoid commenting on it.

Last night the Dallas Cowboys were playing… um… someone else. Doesn’t really matter. I did see one play that made me realize something about the team that calls itself “America’s Team”: they are timid, poorly coached, and they are not going to do well this year.

For a little context, lets review why there are preseason games at all. Teams use these four games as super-practices, and to see how their players do in game situations. The final game of the preseason is traditionally played mostly by players on the bubble – based on their performance in that game players are cut from the team while others are retained.

The actual score of the game makes no difference whatsoever. It’s all about how players perform in given situations. As a coach, I think I would actually try to get my players into tough spots to see how they respond. Situations like, say, fourth and goal at the five yard line, with your team behind and the game on the line. Let’s see who can step up.

Or, if you’re the coach of the Dallas Cowboys, you can execute a routine play for a meaningless three points so you lose the game by fewer points. The coach is already practicing tactics designed to make him look less bad in the score sheets after a loss. He’s also telling his people that he’s a wimp and that he has no faith in his team.

It took only one preseason play to show me all I need to know about the Dallas Cowboys. They have a coach who will squander an opportunity to see his guys in a telling situation, just so he doesn’t look as bad in the papers the next day – after a meaningless game. I don’t like their chances this year.

2

Who Writes Short Shorts?

Esquire magazine is celebrating it’s 78th anniversary with a writing contest. The twist: every entry must be exactly 78 words. I’m pretty excited about the contest; back in the day I used to write 3-sentence bits when I was stuck, tiny snippets that were intended to capture a character, a setting, and a conflict in three sentences. Most of them sucked, of course.

I didn’t realize that most of those snippets are in an alpha version of Jer’s Novel Writer so old that the latest version won’t open them. I used to have an old version that I could use to rescue ancient files, so I’m not worried. For tonight, however, I contented myself with more modern efforts.

I think I can make a 78-word-something that doesn’t suck too bad, but there’s a catch. On the contest page they give an example. They seem to think it’s good. I don’t. At all. So I’m not sure the judges and I see things the same way. I’m going to enter anyway, and so should you! I mean, why not?

Meanwhile, here are drafts of my two candidates (until I bother going back and opening my most-ancient files). One is a condensation of a 600-word scrap I dug up. The challenge is to get a little atmosphere in there and get the buildup of the longer piece in fewer words. I think the payload need to be more condensed in this version – it has to be two sharp smacks of a hammer, bam! bam!. Not there yet. The other starts with a phrase my third-favorite-of-all-time bartender once said (the phrase, in fact, that earned her that stature), in Louisville Kentucky. It’s autobiographical up to a point.

Me on my stool, Ray on his. The game ended. “Every eighteen minutes…” the tv said before falling silent.

“Every eighteen minutes,” Ray said. Took a long drink. Wet rings on the bartop. “Every eighteen minutes a new star is formed.”

“You’re making that up.”

He shrugged. “Every eighteen minutes a girl leaves her family for the promise of an easy life and free drugs.” He put down his empty bottle. “Every eighteen minutes I have another beer.”

“I may be smilin’, but it’s fake.” Heather looked at me almost apologetically as she brought us our beers. She paused. The bar was full of people fresh from the Derby, drunk as lords and money losers on top of that. An angry bar. Funny Cide? Who the hell would pick Funny Cide? Beside me and Art.

“That’s all right, darlin’.” Ever the gentleman, Art. “If someone troubles you I’ll kill him.”

Heather laughed, a little. I didn’t.

2

A Comfy Star

Recently ‘they’ found a brown dwarf nearby. A brown dwarf is a star that never quite made the grade; when all the other stars in the dust cloud were snatching up fuel these hapless wanna-bes were left just shy of the mass (and therefore gravitational pressure) to squish hydrogen atoms together into helium, and as a side effect shooting off heat. They’re barely stars at all.

You can see a thoroughly uninteresting photo of one over at Astronomy Picture of the Day. It’s pretty close to us — on a cosmic scale at least — a mere 40 light-years away. What made this one interesting (to me at least) is the surface temperature. It’s about the same temperature as the room I’m sitting in right now.

So let’s say, for the sake of Science Fiction, that one can travel faster than light. Only slightly more impossible would be dealing with the high gravity. Once those two minor things are taken care of, you could build your house on this star. Well, there probably isn’t a real surface per se, and there’s likely to be some pretty wicked radiation and magnetic what-not. And epic storms, like on Jupiter.

BUT – if you solved those things, you could build your house on a star. That would be cool.

2

A Quick Sale

I was going to spread the word today that fuego is selling an authentic mask used during the production of Aliens vs. Predators back in ought-4. I figured that someone out there might know a movie collector who would be interested in shelling out a pretty hefty price for it.

Well, that’s moot now. The thing went before I could even start pimping it out. The copy fuego wrote for the listing, together with the signed photo of the actor wearing that very mask didn’t hurt I’m sure.

Still, wow.

Bad Behavior, CloudFlare and Google Bot

This blog has several layers of protection from the evils of the outside world, but those layers don’t always get along. One problem that I had is pretty common among CloudFlare users, and the documentation provided by the relevant players has a hole in it – a key nugget of information that can make all the difference.

The nugget follows in due course.

My first line of defense from ne’er-do-wells and miscreants is CloudFlare. They stop most of the bad guys before they even reach my site. Still, for some sorts of attacks, when there’s doubt it’s better to let the bad guy through. It may turn out to be a good guy.

A program called Bad Behavior is my next line of defense. It sits on my server and quickly spots liars and weasels. For dangerous-looking attacks, that’s the limit. But, when there’s doubt and the site itself is not at risk, Bad Behavior will let the attack through.

At this point, ‘attack’ means ‘comment spam’. Everything else is stopped before it reaches this stage. Most of the comment spam has been stopped as well, but some has been given the benefit of the doubt. That’s where Akismet comes in. This layer spots the rest of the comment spam, and it can be much more aggressive since it doesn’t actually delete the spam, it puts it into a bin for future review. So, legitimate comments can be rescued by an alert blog admin.

It works pretty well. Three spams actually got through all the layers last week, the first time any have gotten through in quite some time. Somewhere, a spammer popped a bottle of bubbly.

So comment spam is pretty well thwarted. Hooray! Unfortunately, for a while I had a pretty big problem. Search engine robots were being denied. I fell off Google and Yahoo! and all the rest, and traffic to this site dwindled.

Note: according to this article, Bad Behavior has been updated to avoid the following problem. Yay! You should still install the CloudFlare plugin and the Apache module if you are able.

Here’s what was going on:

  1. Googlebot said ‘hey, muddledramblings.com, show me page x’.
  2. The request must get past CloudFlare. No problem. They see it’s the real Google bot and pass the request on to my server.
  3. Bad Behavior is next. They look at the incoming message and see something that claims to be a Google bot but It’s not coming from Google. It’s coming through CloudFlare. Bad Behavior says, “You are a lying sack of dingo dung and a false Google bot. You are obviously evil and you may not pass.” Google is shut out. The other legitimate robots are cut off as well.

This problem is pretty easy to fix, but not quite as easy as WordPress admins would like to hope. CloudFlare has code that you can install on your server that will straighten the whole problem out. Basically it tweaks incoming messages so that the original source appears instead of CloudFlare. This bit of fix-it code is available as a WordPress plugin, so you can install the plugin and rest easy.

But that’s the thing that tripped me up and is not explained in the docs. In the case of working with Bad Behavior, the WordPress Plugin is not enough.

The catch is that Bad Behavior does its magic before the CloudFlare plugin can do its magic. So, even with the CloudFlare plugin firmly installed, Bad Behavior will reject Google bot and all his pals.

There are two simple solutions: 1) Install the CloudFlare Apache module, which kicks in before anything else is run. This is preferable to the WordPress plugin anyway, because it’s a system-wide solution. 2) If you don’t have that level of control over your server, turn off Bad Behavior. It’s a shame to lose that layer of protection, but not devastating; there’s some overlap between what CloudFlare stops and what Bad Behavior stops. You still have two layers and your own alert management to fall back on.

Wrote a Good Scene this Week

It’s a delicate moment, as Agatha and Deek try to forge a working relationship that doesn’t lead to them killing each other. Deek’s not that good at delicate moments (to put it delicately), and he would much rather discuss bears. Agatha is annoyed, and Deek barely escapes with his life.

I’m trying not to fall into the “I hate you so much I must like you” trap with these two, but its steel jaws are open and waiting for my careless step. It’s a fun formula, dating back to the dawn of courtship, so it’s not inherently evil. It’s just… not this story.

So here’s a fragment of the scene. There are some other bits in the scene I was tempted to share, but this part stands on its own pretty well and isn’t too long. It’s a little bit edited because Agatha’s physiological reactions would be distracting without the context that came before. She’s not human, after all.

Agatha leaned back and studied Deek as he returned to his pancakes. “You seem very blasé about it.”

“About…?”

“About my people hunting and killing you.”

“Oh.” Deek scratched his head. “I dunno. I’m not pissed off at bears.”

“Bears?”

“Yeah. Bears eat people, right?” He swirled a slice of his pancake stack in the lake of syrup on his plate.

“Bears are stupid animals. We are far more dangerous than bears.”

“You ever fought a bear?”

“No, but—”

“There you go, then.” He gestured to show the argument was closed. “You call yourself some kind of badass bear slayer, but when it comes time—”

“Deek, I could kick a bear’s ass with one hand tied behind my back.”

Deek smiled. “Uh, huh.”

“I could.”

“You wanna go to the zoo and prove it?”

“I— no! What the hell are we talking about bears for, anyway? Who gives a shit about bears?” Agatha looked up to see the waitress standing over their table, holding a steaming pot of coffee. The woman’s lined face was set in a frown as she glared over her reading glasses at Agatha.

Deek positioned his cup for a refill. “Apparently she doesn’t like bears,” he said, his eyes arched in an apologetic shrug. “I happen to think they’re all right.”

The waitress threw him a ghost of a smile. “Am I in the presence of another bear afficianado?” he asked.

“Bears are all right,” the waitress said. She filled his cup but didn’t seem to notice Agatha’s. She left on squeaky shoes to visit the next table.

“I can’t believe you don’t like bears,” Deek said.

Agatha pressed her palms against the cool formica. “Deek. If you say that word one more time—”

“Bear?”

“Yes. Bear. If you say ‘bear’ one more time, I will kill you. Not just the metaphorical kill or the hyperbolic ‘kill’ people generally use at times like this, but I will really, truly kill you. Do you understand?”

Deek raised his hands in surrender. “All right, all right. You’ve got some kind of aggro thing about… animals that shit in the woods. No need to get all bent out of shape.”

I don’t think I’m giving away too much to say that Deek says the forbidden word one more time.

1

Vaya con iDios, Steve

One of the world’s most famous corporate icons resigned yesterday. I had my head deep in code when I started hearing the word ‘resigned’ buzzing around the office, but I had stuff to get done. It was my sweetie who actually gave me the news that Steve Jobs had resigned as CEO of Apple.

My first thought: I bet his badge still works. This was confirmed when I read his resignation letter; he will continue to be an Apple employee. The elevators in Infinite Loop 1 are not safe yet.

My second thought: A man who played a huge role in shaping what computing is these days is very sick. Sick enough that he has accepted that he will not be up to running Apple and smart enough to move aside gracefully and let the people who have been running the company continue to do so without uncertainty.

I hope he’s ok. That had to be a monumental decision, not just to let go of the reins but to accept that his own health might not improve. I hope Tim and Peter and the rest had a chance to sit and have a quiet beer with their boss one last time, a chance to think about all they’ve accomplished.

And Steve’s badge still works. He’ll be around.

1

Brains!

Harlean (who is a fiction) has an ambitious shooting schedule set up. There are several magazines asking for submissions for Halloween spreads and contests, and she figures it’s time to get her fictitious face in them.

I am moderately less fictitious, and my role in all this is to take pictures.

Today’s shoot was zombie-themed, and we had a prop brain, of course. Once the serious shooting was done, I experimented a bit on myself, going for over-the-top dramatic lighting and (surprise) a bit of silliness.

Braaaaains!


What they call low-key lighting, even though the key light is totally dominant.

Braaaaaaaiiiiiiinnnnns!


Hey, there’s a light up above the set, may as well crank it up and take off the diffuser. (“Diffuser” is a fancy word for “piece of paper”.)

Braaaaaaaiiiiiiiiiiinnnssssssssss!!!!!!!!!!


The logical conclusion of the sequence, shot with only a light above and behind. I was going for that back-alley distant-streetlight shadow-dwelling hyphen-using brain eater look here.

Brains.


This was actually the first shot I took. The light doesn’t hit my face right, but I like my expression. So let’s justify putting it here by making it black and white and cropping it down to a head shot.

5

How This Blog Works

Over the years, the technology behind this blog has gone from cave-dwelling stone-knives-and-bearskin static pages to cloud-city jet-packs-and-lightsaber dynamic yumminess. That transformation starts with WordPress but does not end there. Not by a long shot.

I started the Muddled Media Empire using a tool called iBlog, because it was free and worked with Apple’s hosting service, which I was already paying for. iBlog’s claim to fame was that it didn’t require a database – every time you made a change it went through and regenerated all pages that were affected. Toward the end, that was getting to be thousands of pages in some cases, each of which had to be uploaded individually. When iBlog’s support and development faltered, it was already past time for me to move on.

WordPress is an enormously popular Web-publishing platform. It comes in two flavors: you can host your blog on their super-duper servers and accept their terms of service and the slightly limited customization options, or you can install the code on your own server and go nuts. I chose the latter, mainly because I wanted to be able to touch the code. I’m a tinkerer.

So I signed up for a cheap Web host and set to work building what you see now. At first things were great, but after a while the host started having issues, and the once-great customer service withered up and vanished. So much for LiveRack. I think they just didn’t want to be in the hosting business anymore. I moved to iPage.

iPage was cheap, but I was crammed onto a server with a bunch of other people and sometimes my blog would take an agonizing time to load. Like, almost a minute. Then there was the time a very popular Geek site linked to my CSS border-radius table and iPage shut me down because the demand on the server was too much. Ouch! My moment in the sun became my moment at the bottom of a well.

I set out to find ways to make this blog more server-friendly and more user-friendly at the same time. Step 1: caching. WordPress doesn’t store Web pages, it stores data and the instructions on how to build a Web page. So, every time you ask to load a page here, WordPress fires up a program that reads from the database and assembles all the parts to the page. The thing is, that takes longer than just finding the requested file and sending it back, the way iBlog did. Caching is a way for the server to say, “hey, wait a minute – I just did this page and nothing’s changed. I’ll just send the same thing I did last time.” That can lead to big savings, both in time and server load.

I looked at a few WordPress cacheing programs and eventually chose W3 Total Cache, because it does far more than just cache data. For instance, it will minify scripts and css files (remove extra spaces and crunch them down) and combine the files together so the browser only has to make one request. It will zip the data, meaning fewer 1’s and 0’s moving down the pipe, and it does a few other things as well, one of which I will get to shortly.

I installed W3 Total Cache, and although some settings broke a couple of javascripts (for reasons I have yet to figure out – I’ll get to that someday), the features I could turn on definitely made a difference. Hooray!

But Muddled Ramblings and Half-Baked Ideas was still way too slow. I continued my search for ways to speed things up. I also began a search for a host that sucked less than iPage. (iPage was also starting to have outages that lasted a day or more. Not acceptable.) I decided I was willing to pay extra to be sure I wasn’t on an overwhelmed machine.

I’m not sure which came first – new server or Amazon Simple Storage Service. S3 is a pretty basic concept – you put your stuff on their super-duper servers, and when people need it they will get it really quickly. Things that don’t change, like images and even some scripts, can live there and your server doesn’t have to worry about them.

This is where W3 Total Cache earned my donation to their cause. You see, you can sign up for Amazon S3, and then put your account info into the proper W3TC panel and Bob’s Your Uncle. W3TC goes through your site, finds images and whatnot, puts them in your S3 bucket, and automatically changes all the links in your Web pages to point to your bucket instead of your own server. (Sometimes I find I have to copy the image to my S3 bucket manually, but that’s a small price to pay.)

Now a lot of the stuff on my blog, like the picture of me with the Utahraptors the other day, sits on a different, high-performance server out there somewhere, and no matter how overwhelmed my server happens to be at the moment those parts will arrive to you lickety-split. Amazon S3 is not free, however – each month I get an invoice for two or three cents. Should Muddled Ramblings suddenly become wildly popular, that number would increase.

About that server – the next stop on my quest for a good host was a place called Green Geeks. I wanted to upgrade to a VPS, which means I get a dedicated slice of a server that acted just like it was my very own machine. There is a lot to like about those, but my blog just wouldn’t run in the base level of RAM they offered. I upgraded and reorganized so that different requests would not take up more ram than they needed. Still, I had outages. Sometimes the server would just stop freeing up memory and eventually choke and die. Since it was a virtual server in a standard configuration, logic says it was caused by something I was doing, but all my efforts to figure it out were fruitless, and Green Geeks ran out of patience trying to help me figure it out.

The server software itself is Apache. At this point I considered using nginx (rhymes with ‘bingin’ ex’) instead. It’s supposedly faster, lighter, and easier to configure. But, I already know Apache. I may move to nginx in the future, but it’s not urgent anymore.

During the GreenGeeks era I came across another service that improves the performance of Web sites while reducing the load on the servers. I recently wrote glowingly about CloudFlare, but I will repeat myself a bit here for completeness. CloudFlare is a service that has a network of servers all over the world, and they stand between you the viewer and my server. They stash bits of my site all around the world, and much of the time they will have a copy of what you need on hand, and won’t even need to trouble my server with a request. About half of all requests to muddledramblings.com are magically and speedily taken care of without troubling my server at all. They also block a couple thousand bogus requests to my server each day, so I don’t have to deal with them (or pay for the bandwidth). It’s sweet, and the base service is free.

Unfortunately, it was not enough to keep my GreenGeeks server from crashing. Once more I began a search for a new host. I found through word of mouth a place called macminicolo. Apple employees get a discount, but I wasn’t an Apple employee yet. It was still a bargain. For what turned out to be the same monthly cost of sharing part of a machine at GreenGeeks, I get an entire server, all to myself, with plenty of RAM. I’ve set up several servers on Mac using MacPorts, and I knew just how to get things up and running well. It costs less than half what a co-located server costs anywhere else I have found (Mac, Windows, or Linux). (Co-location has up-front costs, but in the long term saves money.) So I have that going for me.

The only thing missing is that at GreenGeeks I had a fancy control panel that made it much simpler to share the machine with my friends. I do miss that, but I’m ready now to host friend and family sites at a very reasonable cost.

So there you have it! This is just your typical Apache/WordPress/W3 Total Cache/Amazon S3/CloudFlare site run off a Mac mini located somewhere in Nevada. Load times are less than 5% of what they were a year ago. Five percent! Conservatively. Typically it’s more like 1/50th of the load time. Traffic is up. Life is good.

Now I have no incentive at all to learn more about optimization.

3

A Question for the Chemistry Geeks and Auto Buffs Out There

The plastic covers over my headlights are becoming opaque. Not the best situation. There are products out there that promise to restore that plastic to its virtually-invisible former self, but as far as I can tell all those products simply polish the surface of the plastic. It seems to me the damage is cause by ultraviolet radiation and likely goes more than skin deep.

Still, I’d like to believe the commercials that say they can restore my headlight covers to their former optic glory. I just don’t want to spend the precious cash dollars to find the claims to be bogus. Is there anyone out there who can either a) explain or b) attest to the worthiness of these products?

Wiener Dog Nationals!

Saturday, a mere two days from now, the Wiener Dog Nationals will be run at Golden Gate Fields.

In the racing world, only the Kentucky Derby comes close to the majesty of this race.

Wiener dogs! Running! With dignity, of course.