Archive | May, 2008
“Knots and Crosses” by Ian Rankin

“Knots and Crosses” by Ian Rankin

*We had a lot of great reviews on the old ClubReading website. And so those don’t go to waste, (and so we have some fresh content here occasionally), I’m going to post an old review now and again for your reading pleasure. Enjoy!*
Knots and Crosses
["Knots and Crosses"][knots] by [Ian Rankin][IanRankin] is a classic noir crime mystery, set in 1980′s Edinburgh. Ian Rankin’s recurring police detective, John Rebus makes his debut in this story about serial killing and revenge.
John Rebus is a hard-nosed, reclusive cop with a troubling past. Frequently, John’s past haunts him with nightmares and half known truths. But to solve these murders, John will have to confront those nightmares head on.
[knots]: http://clubreadingbooks.com/bookdetail/1990/
[IanRankin]: http://clubreadingbooks.com/browseauthors/1489/

Read full storyComments { 2 }
Jeeps with 4 doors?

Jeeps with 4 doors?

I’m not comfortable with Jeep’s having 4 doors. And I know…the Cherokee and liberty have 4 doors, but I’m talking about Jeeps…with a capital ‘J’…Wranglers of course. Boy, Jeeps have made a lot of progress over the years; the hard doors, glass windows, easy on/off roofs are all great improvements. But I just can’t get comfortable with the idea of a 4 door jeep.
Me and the Jeep - Grand Canyon
I hate to admit this, but I’ve even gone so far as shunning them. Like the Harley and other motorcycle riders, there’s a long tradition of ‘acknowledging’ other drivers you pass. Harley riders do a sort of low wave; us Jeeper’s will share a wave or a ‘guy nod’. It’s all about community. Huh – little did I know, there are [Jeep Wave](http://jeeptalk.org/jeep_wave.php) rules. :-) But should these 4-door ‘Jeep’s’ get waves? I just don’t know.
Well, I’ll get over it. I guess we have to, at times, step aside for progress. Maybe it’s time to start looking at a Prius.
Sigh….

Read full storyComments { 3 }

Yep – another distracting (and very funny) video

This probably wont make any sense unless you have been following the You Look Nice Today podcasts, but this video of lonelysandwich dancing at an airport is priceless! Enjoy!

For more advanced information, How To Dance While Barely Moving: the “Fishstick”

Read full storyComments { 0 }

Cory Doctorow and John Scalzi Chat

Over on his blog, Craphound.com, Cory Doctorow shares a great video, John Scalzi and Cory talking about their latest books…and other things. Check it out.

Read full storyComments { 0 }

Weeds!

I have a lot of weeds this year, and no desire to fuss with them. However, over at This Garden is Illegal, they have some great weed killing tips. Enjoy!

Read full storyComments { 0 }

Sammy

Here’s a YouTube post for today, from one of my favorite performers/singers. Fantastic!

Read full storyComments { 0 }

Memorial Day

The folks over at vfw.org sum it all up, Meaning of Memorial Day. Great job.
Thanks Vets!

Read full storyComments { 0 }
2910549217_066b3a73eb

RSS feed in Zend Framework

Going to get a little geeky here. But I wanted to share a simple, and effective way to create a simple rss feed of content in the Zend Framework.

The new ClubReading site is separated into two parts, the blog, and the books. The books site is now using Disqus for the comments, and so far Disqus is working out great, but that’s a topic for another day. The blog is a wordpress blog. What I wanted to do was display a couple or three of the recently added books from the books site on the sidebar of the ClubReading Blog. My thought was to create a simple rss feed of the most recent books, and use the standard wordpress rss widget to display the feed content in the sidebar. But – how to create the rss feed? Turns out it was pretty simple thanks to a great article by Alex Netkachov called “Syndicate content with Zend Framework Zend_Feed classes”.

What is an RSS feed?

Simply put, RSS, Really Simple Syndication, is a file format. Think of it as a form letter. Like a business letter, because the format is standardized, the reader knows where to find the from address, to address, salutation, content…and so on. An RSS feed does the same thing by taking content and making it available in a standardized format.

What does an RSS feed look like?

RSS feeds are in xml format. XML, or the Extensible Markup Language, presents any type of information within descriptive tags. Tags are closed in <> and can be anything. Don’t confuse the xml tags with html. For example, in html to bold a bit of text, just enclose the text in the <b> tag, for example, <b>Bold</b> is in bold would show in the browser as Bold is in bold. XML tags work the same way, they open and close. So we might have a description tag like this:

<description> Description text </description>

There are several types or standards of RSS feeds. A great place to start is the RSS 2.0 Specification article at Harvard Law. As the article states,

RSS is a dialect of XML. All RSS files must conform to the XML 1.0 specification, as published on the World Wide Web Consortium (W3C) website.

RSS feeds basically consist of a header section that describes the feed, and a repeating section for items or content. So, the first thing I did was create a sample RSS file to work with as a template. I want to feed to show the Book Title, Author and who entered the book. Here’s the sample I came up with:

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
<channel>
<title>ClubReading Books></title>
<link>http://books.clubreading.com/index/rss</link>
<description>An online community for the avid book lover.></description>
<pubDate>Mon, 26 May 2008 21:28:50 +0000</pubDate>
<generator>Zend Framework Zend_Feed</generator>
<language>en-us</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<item>
<title>Clans of the Alphane Moon></title>
<link>http://books.clubreading.com/book/bookdetail/book_id/2582</link>
<guid>http://books.clubreading.com/book/bookdetail/book_id/2582</guid>
<description>by: Philip K. Dick, entered by: Bill Estep></description>
<pubDate>Mon, 26 May 2008 21:28:50 +0000</pubDate>
</item>
</channel>
</rss>

As you can see, the document opens with the <channel> tag and some information about the feed. Then the items repeat in the <item> tag. For my sample document, I only used one item for simplicity.

Creating the RSS feed

The next decision to make was where to put the rss feed code? I made the decision to access the recent books feed from the index controller, so the final url will look like http://books.clubreading.com/index/rss. So, I created a created an empty view field rss.phtml in the application/views/scripts/index folder.

Next, in the IndexController, I added an rssAction function. To keep things simple, all the function needs to do is get a list of recently added books, format the feed data into an array, then dump the feed. Following Alex’s example, here’s what the final action looks like:

function rssAction()
{
// get recent books
$books = Book::recentbooks(3,0);
$baseUrl = 'http://books.clubreading.com';
$tempbook = $books->current();
$pubDate = $tempbook->date_entered;
$feedArray = array(
'title' => 'ClubReading Books',
'link' => 'http://books.clubreading.com/index/rss',
'description' => 'An online community for the avid book lover.',
'language' => 'en-us',
'charset' => 'utf-8',
'pubDate' => $pubDate,
'generator' => 'Zend Framework Zend_Feed',
'entries' => array()
);
foreach ($books as $book) {
$feedArray['entries'][] = array(
'title' => $book->book_title,
'link' => $baseUrl . '/book/bookdetail/book_id/' . $book->book_id,
'guid' => $baseUrl . '/book/bookdetail/book_id/' . $book->book_id,
'description' => 'by: ' . $book->author . ', entered by: ' . $book->entered_by,
'pubDate' => $book->date_entered
);
}
$feed = Zend_Feed::importArray($feedArray, 'rss');
// Not needed - see comments
foreach ($feed as $entry) {
$element = $entry->summary->getDOM();
}
$feed->send();
}

The Result

Well, the new rssAction works like a champ! All that remained was to add the RSS widget to the wordpress sidebar and give it the url to the new rss feed.

ClubReading Books RSS Feed

I also added a subscribe icon to the Recent Books section of the Books website. After a quick google search, I found Feed Icons, and downloaded the publicly available Mozilla feed icons.

Like most programming adventures, there are as many different ways to implement a solution as there are programmers. :-) I don’t profess to implement any best practice…or even good code. But this worked for me, and maybe others will find it useful. Overall, a fun learning experience.

Read full storyComments { 11 }

Praying For Time

I saw the performance George M. did on the recent American Idol finale (gotta love youtube). It was, as expected, great. Carrie Underwood covered the song recently at some American Idol event, and the video was good…very good. But this is George’s song…this clip, in my opinion, remains the standard to beat. Enjoy.

Read full storyComments { 0 }
Yo!  Need a vampire hunter over here!

Yo! Need a vampire hunter over here!

Blood Noir
Amazon emailed me a couple of days ago to let me know I might like the new Laurell Hamilton book “Blood Noir”. I don’t have the message anymore, but I remember it going something like “You liked Anita Blake in the past, you might like this one. Why not pre-order?” In reality, it said something like “As someone who purchased from the Anita Blake, Vampire Hunter series…”.
Yeah – I did like Anita Blake in the past. The first few books in the series were excellent. Then we went through the courting phase where each book had the worst imaginable, most horrific bad guy that only flittered around the edges of the story till the last few pages, when Anita would stroll in and end the story in some ridiculous fashion, like killing an Aztec god with a pen. Also, the formulaic descriptions start to get annoying. Every character is described over and over by eye color and what they are wearing.
Then, well…the series went down hill fast. Anita stopped doing her job, and started shacking up with half of the male cast, and sleeping with the full male cast. Don’t get me wrong, I’m not a prude, and I think sex can have a great impact on a story, but when that’s all there is, then it gets mundane and trite. Let’s face it…Hamilton is not Harold Robbins.
So, no, I probably wont be enjoying the new Anita Blake book. Sigh…what happened to the Anita of “Guilty Pleasures”. As Hamilton has said in several interviews, she’s writing for her audience. That’s great, and I wish her luck, but I do miss the hard hitting, monsters and gore of the early series.

Read full storyComments { 2 }
Page 2 of 3123