Category Archives: Geekery

Hacking Night In Canada

Spent then tail part of my Saturday watching hockey and coding.  I’m sure Jamie would be proud.  And likely doing the same thing.

It’s always great to decide to fix some code and things pretty much work out the way you want.  Tonight I wanted to add a listing of the Tags for each post to Single Post view to the theme I’m using for this site.  Cellar Heat is a great theme and working with it was awesome.  Its a great theme with great code build on the pure awesome of WordPress.

Pretty much the only thing I wanted in the theme that wasn’t already there was the listing of tags for each post.  I don’t mind tags not being included on the post excerpts on the front page and side bar.  I did think that tags should be included with the full post view…so I added them.

First I found the WordPress documentation on the calling the Template Tag “the tags” (a bit of unfortunately confusion naming by WP there…).  Easy and straight forward, I dropped in some code to get the tags in the full post view.

Keeping in mind I’m using the 1.0 version of Cellar Light, I added this div just before the second”<br clear=”all” />”

<div id="tags">
 <?php the_tags('Tags: ',' • '); ?>
</div>

I then added a bit of styling.  I wanted the tags to be visible but not a visual focus.  To accomplish this, I dropped the font size down to 10px, moved it to a right alignment and used the opacity style to soften it’s look.  I started off with just using italics, but it still looked too heavy.  I was delighted that I just assumed there was an opacity feature in CSS, having never used it before, and then found exactly how to do use it on Quirksmode.org.  The article includes important tips on IE compatibility for the opacity effect.  I’ve tested with IE 8 and I’m happy with that.  Here’s the CSS code I added to the stylesheet:

#tags {
      font-size:10px;
      text-align:right;
      opacity: .35;
      -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; // IE(8) opacity magic
      filter: alpha(opacity=50);                    // more IE(7) opacity magic
}

And that’s it!  Good times.  Good Hockey.  And even caught some of The Rockey Horror Picture Show.  All in all, a lovely evening.  I think I might move the dark version of the Cellar Heat…the rounded corners and the look of the footer is tipping the balance.  I expect this code to just work with the dark version, if I do end up making the switch.

You can see the result of the changes I made at the bottom of this post…or any post.  If you like this work, you’re welcome to it – although I would appreciate a comment or email telling me that you found this helpful.

Changing Symlink Ownership

I just encountered the Curious Case of changing the ownership of a symbolic link.  I used chown and then…what happened is…well nothing.  Or least that’s how it looked.  There was no error message and the symlink’s ownership was unchanged.

This seemed sub-optimal so I asked Google and a few colleagues and I got the answer, more than once, that you can’t change the ownership of a symlink.  I accepted this and so I deleted the symlink and then I su’ed to the account I wanted to give ownership to and recreated the symlink as that acccount.  Not a Bad Thing, but not a Good Thing either.

A few minutes later I couldn’t stop thinking about how little sense this made.  So I went back to Google and sweet talked her into giving over the goods.  It turns out that what happened the first time I tried to chown the symlink is that chown respected the symlink and I changed the ownership of the referent directory, not the link to it.  That was a Bad Thing.  Especially since I didn’t see that it happened.

Luckily, there is a Good Thing as well, and it’s chown.  Chown has an option (-h) to reference a symlink itself and not its referenced file:

chown --no-dereference user:group symlink

From the Good Thing comes a Happy Ending: I have restored the ownership of the referent directory and successfully changed the ownership of the symlink.  Not to mentioned learned a cool bit of linux trivia.  This would be a terribe(ly awesome) interview questions >:).

Many thanks to the Edmonds Commerce Blog, a Freelance PHP Ecommerce and SEO Developer in the UK for their post explaining this.  Although, if I had just man’ed chown, I would have been able to figure this out on my own <grin>.

update: The man page for chown has a comment that makes it sound like some OS really can’t change the ownership of a symlink.

-h, –no-dereference
affect  each symbolic link instead of any referenced file (useful only on systems that can change the ownership of a symlink)”

Just thought I’d mention that as well.