I delivered this eulogy for my dad Roger Cadenhead today at Prestonwood Baptist Church.

On behalf of the family I'd like to thank everyone for coming out to honor dad. I'm his son Rogers, also known as Roger Jr., also known as Little Roger.

There are some people you meet whose brains spin at a different RPM than anyone else's. He was one of them.

My dad was 20 when I was born and my mom was 18. I am a happy accident.

Dad had some unusual parenting techniques. Our apartment in Oak Cliff was so small my crib was in a closet. He would make a face and tell me, "I'm gonna break your plate and burn your sheet!" Southern expressions are weird. I was 30 before I figured out that all the people telling me "bless your heart" were not paying me a compliment. But this expression was the weirdest. All the time dad would say to me, "I'm gonna break your plate and burn your sheet!" One day we were moving to a new apartment, so Dad took my crib apart to pack it. When I saw this, I flipped out. I ran to mom and wailed, "HE'S BREAKING MY PLATE AND BURNING MY SHEET!"

I learned several things as dad's first-born son.

1. When a train crossing starts clanging and the arms come down, that means "hurry up and see if you can beat the train."

2. If your dad leaves you on an elevator, stay on the elevator. He'll eventually figure out you're gone and find you.

3. When your dad says "hold my beer while I try this," step back at least 10 feet for safety reasons.

I had fun as an only child, but the real mayhem began when my parents thought they were having one baby but got a BOGO deal and brought home twins.

Chad and Kelly, please stand for this part.

The twins were three when they decided our home was clothing optional. They would at a moment's notice take off their clothes and run naked through the house. And the yard. And the neighborhood.

One day they couldn't be found. Dad panicked. He ran through the house yelling "Chad and Kelly!" When he went into the front yard hollering their names, a neighbor pointed at our front window.

Chad and Kelly were standing in between the curtain and the front window, waving at people, both naked as a jaybird.

Chad and Kelly, you can sit down now.

While I'm up here I want to thank my Other Mother, Sherry.

Sherry was the love of dad's life and it means a lot to us that she took such good care of him.

When you stand up and say you'll be with someone "in sickness and in health, for better or worse," that's easy during the wedding. You're young. Your outfit is on fleek. You're already thinking about the reception and the open bar.

But when life tests you with a challenge like the struggle dad faced for over a decade, Ronnie Millsap had it right: That's 99 44/100ths percent pure love.

When my dad liked a song, he listened to it over and over. Everyone in the house learned every line. Whether we wanted to or not.

There's a limit to how many times a person should be forced to hear "Giddy up, a oom papa oom papa mow mow." But it wasn't all bad. I could listen all day to Janis Joplin asking the Lord for a Mercedes Benz.

There was one song that dad in particular liked to sing along with. You could say it was his life philosophy.

I think we should sing eight lines from it. I want to hear you in the back. I see you in the back, Kay. I know you came in late, and that's OK.

"Oh Lord, it's hard to be humble.
When you're perfect in every way.
I caint wait to look in the mirror.
'Cause I get better lookin' each day.
To know me is to love me.
I must be a ---- of a man.
Oh Lord, it's hard to be humble.
But we're doing the best that we can."

I love you, dad. After a 70-year life surrounded by love, you're the one on the elevator. Keep going, and as you made me understand when I was six, we will be together again. And I know it's fun, but please don't push all the buttons.

-- Rogers Cadenhead

My dad Roger Cadenhead died yesterday after a long battle with Von Hippel-Lindau syndrome. He was 70. Dad was a microelectronic engineer, rock-ribbed Republican, ham radio operator K5PCS and one half of the June 1980 father-son championship at the Hulen Mall Putt-Putt. You could start a conversation with him on the weather and find yourself an hour later in a discourse on the root causes of World War I. He'll be taken back to Honey Grove, which he loved, to the mother and grandmother who raised him. His death means that someone else is now the No. 1 critic of Texas Rangers general manager Jon Daniels.

My dad and I, circa 1970

Leslie HarpoldToday's the 10th anniversary of the death of Leslie Harpold, a friend who died on Dec. 7, 2006, at age 40 in the middle of a brilliant run as one of the first and best web essayists. Before there were blogs and social media silos the web was full of personal sites, hand-coded in HTML by people who had no idea what we were doing -- because there were absolutely no rules or expectations. Leslie's creativity flourished on that vast undiscovered canvas.

Most of Harpold's work is no longer online, but her legion of friends still pass around her words like they were contraband.

I thought this would be a good day to share one of those essays, which was published on Hoopla 500, a project where she wrote to that word count. It was written when she was living in New York City.

Leslie was good at making you sad, but for this occasion I wanted to show an example of how funny she was.

08/30/2001 - "Unsaid"

To the man who ordered three pounds of deli meats while I stood behind you waiting, pretending to be interested in the display of featured cheese selections:

Your shirt looked so soft I wanted to touch it, especially since you reeked of fresh laundry. I wanted to lay my face on your back for a moment, then never see you or speak to you again. I just wanted that one moment.

To the woman who leapt out in front of me on Houston Street and jumped into the cab I had hailed, looking over her shoulder at me, saying "Survival of the fittest, sorry!" as she climbed in:

Fuck you. That was just rude.

To the woman who was going on and on about her thighs in Prada:

You're beautiful. Relax. Yes, they were extremely cute pants, but the truth is there are a lot of pants in this world and you are so pretty the only one worried about your pants is you. Most people are more interested inn what's inside your pants and I mean that with every conceivable dimension that phrase invokes.

To the teenager who was trying to remember who wrote Paradise Lost after quoting the ending passage:

It was Milton, and just knowing those ten lines puts you so far ahead in a game you may not even realize you're playing -- more than you know. I was blown away and inspired. Don't sweat your SAT scores, just keep reading and thinking and you'll be okay.

To the guy who was talking to the bartender at Gaslight:

That reminds me of a joke. The angry wife met her husband at the door. There was alcohol on his breath and lipstick on his collar. "I assume," she snarled, "there is a very good reason for you to come waltzing in here at six o'clock in the morning?" "There is," he replied. "Breakfast."

To my downstairs neighbor who I discussed the building's water pressure with:

Are you okay? I've been a little afraid of you since that time three years ago you were taken of of here in straitjacket. I didn't even know that actually happened, but it was a really disturbing image. I hope you're okay.

To Annabelle, whom I ate lunch with:

The worst part is -- I actually did think it was funny.

To the guy at the table next to me in the restaurant who said "Who the fuck would want to go Michigan on vacation? What the fuck was he thinking?"

I would, I just did. It's not as bad as you think, actually it's quite beautiful. Plus the people are nice. To be honest though, I bet half of them would say "Who the fuck wants to go to New York?" if you asked them.

Today would be a good day for friends and readers of Leslie to share her words. If you do, let me know so I can link to it on this post.

For the last four days, my anti-virus software has been blocking a possible virus when I visit some popular news sites. The URL flagged as a virus is a subdomain of eclampsialemontree.net that has a long string of random characters and looks highly suspicious. A report on VirusTotal indicates two anti-virus providers are blacklisting that domain as a malware site.

The latest site where I encountered this virus alert was a story on Stars and Stripes. I'm not embedding a link for obvious reasons, but it has the headline "Veteran, one of 4,200 mistakenly declared dead by VA, feels 'resurrected.'"

In the Google Chrome developer console, I can see that when the story is read, the URL is being loaded in an XmlHttpRequest by this JavaScript code on the news page:

<script src="http://s.ppjol.net/lightbox/pp4.js"></script>
<script>
if (!navigator.userAgent.match(/StripesApp/i)) {
  var pp = { client: { config: { 'zone':"-jmtl7NTsKXjcoZnYuS2qB", 'mode':"universal", 'debug':0, 'precheck': function(){ return 1; } } } };
}
</script>

This code is provided by Press Plus, a company that manages newspaper subscription paywalls. I think the purpose of the script is to superimpose a box above the story that urges a reader to subscribe to the site.

The script does not have any reference to eclampsialemontree.net, so I don't know why it is attempting to make a connection to one of its subdomains.

I've encountered this 24 times on different news sites. I'd like to figure out why it's happening. I post a lot of links to news stories on the Drudge Retort and I can't link to a site I believe might have been compromised by a virus.

Six months ago I retired a web server I had been using for 11 years. I commemorated the occasion because I was paying for a server to host my sites that had become a museum piece.

Linux is so good at running Apache, MySQL and PHP that your hardware can become a decade out of date without performance becoming an issue.

My other two web servers were almost as old. The company I use for hosting, SoftLayer, recently offered me a deal to upgrade. A sales rep told me, "After reviewing your account we noticed that you are still are on our older legacy platform. Many of our customers have migrated off this platform, and you are one of the few who still remain on it."

I just completed that move. My sites are running on new servers over 20 times as fast and my monthly hosting costs have dropped from $652 to $326. That will save me almost $4,000 a year.

If you see this post, it worked! One bug down, many more likely to go.

Villains and Vigilantes, 1st edition, coverAfter the longest court battle in the history of tabletop roleplaying games -- four years, eight months and 16 days -- the creators of Villains & Vigilantes have secured the rights to publish the game they created as teens in the 1970s. On Tuesday night, Jeff Dee and Jack Herman of Monkey House Games uploaded a version of the game to DriveThruRPG that included some new text in the copyright indicia (emphasis mine):

The Monkey House Games logo is a trademark owned by Monkey House Games. All characters, character names, and the distinctive likenesses thereof are trademarks owned by Monkey House Games. Villains and Vigilantes is a trademark of Scott Bizar, used with permission.

This language is the first official sign that a settlement has been reached. I asked Dee for details, but all he was ready to say is that they are "pretty happy."

On July 27, 2011, Dee and Herman sued Bizar, the publisher of Fantasy Games Unlimited, for copyright infringement, asserting that his contractual right to publish their game had expired many years earlier and he kept this fact from them. The lawsuit began in Florida, moved to Arizona and ultimately reached the U.S. Court of Appeals Ninth Circuit. I covered the case in detail in two posts on this blog:

Dee and Herman signed a 1979 contract with Bizar that gave them the game's copyright. A contract three years later to publish a comic book stated that Fantasy Games Unlimited owned the trademark. After Bizar stopped being a full-time game publisher in 1987, Dee and Herman tried for years to reach a deal to publish the game under the trademark, to no avail. Then in 2010, a fan of the game who is also an attorney discovered that Bizar had dissolved Fantasy Games Unlimited Inc. in 1991.

Under the contract, this reverted all rights to Dee and Herman, so they published the game as the newly formed Monkey House Games. Bizar disputed their right to do this, and thus began the titanic battle of the lawyers.

Dee and Herman prevailed in court when an Arizona judge ruled in 2013 that Bizar lost all of his rights to the game by selling zero copies of it from 1990 to 1994. The judge also ruled that Bizar never had rights to publish electronic editions or derivative works, two things he's been doing the past six years on the Fantasy Games Unlimited website.

Bizar filed an appeal and the case was taken up by the Ninth Circuit Court of Appeals, which affirmed in a July 7, 2015, ruling that Bizar had lost the rights to publish the game over 20 years ago:

[T]he contract expressly provided that the agreement would terminate by operation of law if FGU, Inc., ceased to do business for any reason. The agreement also prohibited the assignment of any rights under the contract without the written consent of the other parties. By the terms of the agreement, when FGU, Inc., was dissolved in 1991, all rights to the 1979 and 1982 Rulebooks reverted to Dee and Herman. Accordingly, all sales after the 1991 dissolution of FGU, Inc., of the 1979 or 1982 Rulebooks were infringing acts.

Despite this finding, the appeals court sent part of the case back to Arizona to decide whether Bizar still owned the trademark.

Dee, an artist well known for his illustrations on early Dungeons & Dragons books and supplements, has been producing new games and Kickstarter projects in recent years at a prodigious pace -- which I assumed was due to the costs of fighting this court battle. In September of last year, Dee asked fans for help with legal expenses on GoFundMe, receiving $26,755 from 523 people. He wrote this in the fund-raising appeal:

Our claim that the publishing rights reverted to us has been upheld in court, but our opponent still claims to own the trademark to our game's name and he's suing us for using it. If he wins on that count, he'll be able to seize our creation and financially ruin us. We've been fighting for our rights for several years, and frankly we need money in order to carry this battle to a final victory. We just want to get back to making our games!

As a fan going back 35 years, I'm glad the case is over and two of the first RPG designers finally can publish their best-known game. I was hoping that a court would pry the trademark out of Bizar, because it makes no sense that he'd have a claim on it, but the guy has a kung-fu grip.

If you'd like to reward Monkey House for fighting like crazy over 1,724 days in court to publish a game that isn't going to make anybody rich, Villains & Vigilantes is available as a printed book for $16.99 from Lulu and an ebook for $7.50 from DriveThruRpg.

Update: This story was edited to reflect that the trademark's ownership was in a 1982 contract, not the original 1979 contract.

Google Search Console reported a bunch of structured data errors in a new WordPress blog I began recently. This was a surprise, because I didn't know I was offering structured data. The WordPress theme I've been using, Twenty Twelve, includes CSS styles in blog posts to support the hAtom microformat, which helps search engines recognize the components of a blog post such as the title, author and tags.

When Google crawled the blog, the Structured Data section of Search Console flagged 20 pages with the error "missing: updated," which indicated the data should have an element called updated that isn't there.

Screen shot of Structured Data report in Google Search Console

I did some digging and found that WordPress bloggers are solving this problem in some complicated ways, like adding a plugin just to filter the structured data out. But I found an easier solution.

The updated style indicates when a blog post was last updated. In every page that displays a blog entry, updated should be in the HTML where the post time is displayed. Here's an example prior to the fix:

<time class="entry-date" datetime="2016-04-02T19:39:49+00:00">April 2, 2016</time></a>

Any blog post can include hAtom structured data by adding class names to the tags that surround an element. The updated class should be added to the time tag, turning the HTML into this:

<time class="entry-date updated" datetime="2016-04-02T19:39:49+00:00">April 2, 2016</time></a>

In the folder for my blog's theme, I found the file I needed to edit to add this fix: functions.php. This file is a collection of PHP functions to enhance the theme and modify WordPress functionality.

In a function called twentytwelve_entry_meta(), I found the line where the blog post's time is displayed. I edited the line to add the reference to updated. Here's the line after the change:

$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date updated" datetime="%3$s">%4$s</time></a>', esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() )
);

I'm still learning about WordPress and not ready to make major changes to a theme's PHP code, but this fix is a minor adjustment to the HTML output, so I thought it would be safe to attempt. The fix was successful: When I test my blog's pages in Google's Structured Data Testing Tool they pass.

The fix I've described works in the Twenty Twelve theme -- and probably some of the other basic themes for WordPress. Because each theme has different HTML, you may find the code that displays the time someplace else.