Plugin Name: Brian's Latest Comments
Plugin URI: http://meidell.dk/archives/category/wordpress/latest-comments/
Description: This shows an overview of the recently active articles and the last people to comment on them. Original idea and code fixes contributed by Michael Heilemann. If you have Dunstan's Time Since installed, this plugin uses it for the title="" attributes on the comments and posts. (For WordPress 1.5)
Author: Brian Meidell
Author URI: http://meidell.dk/
Version 1.5: Now works without LOCK TABLE and CREATE TEMPORARY TABLE priviledges.
Version 1.5.1: Can't remember what I did here
Version 1.5.2: Fixed count select statement to not include spammy comments
Version 1.5.3: Properly excludes track- and pingbacks
Version 1.5.4: Excludes posts that are not published, even if they have comments
Version 1.5.5: Fade old comments, fixed bug that wreaked havoc with Time Since
Version 1.5.6: Bugfix from Jonas Rabbe (http://www.jonas.rabbe.com/) pertaining to timesince
Version 1.5.7: Bugfix so old colors can be darker than new colors (stupid oversight), thanks to http://spiri.dk for spotting it.
Bugfix where single digit hex would cause invalid colors, thanks to http://www.wereldkeuken.be/ for the fix.
Version 1.5.8: Updated to work with WordPress 2.1 alpha by M. Heilemann.
function blc_latest_comments($num_posts = 5, $num_comments = 6, $hide_pingbacks_and_trackbacks = true, $prefix = "
", $postfix = "
", $fade_old = true, $range_in_days = 10, $new_col = "#444444", $old_col = "#cccccc")
function clamp($min, $max, $val)
$usetimesince = function_exists('time_since'); // Work nicely with Dunstan's Time Since plugin (adapted by Michael Heilemann)
// This is compensating for the lack of subqueries in mysql 3.x
// The approach used in previous versions needed the user to
// have database lock and create tmp table priviledges.
// This uses more queries and manual DISTINCT code, but it works with just select privs.
$ping = "";
$ping = "AND comment_type<>'pingback' AND comment_type<>'trackback'";
$posts = $wpdb->get_results("SELECT
FROM ($wpdb->comments LEFT JOIN $wpdb->posts ON (comment_post_ID = ID))
WHERE comment_approved = '1'
ORDER BY comment_date DESC;");
$seen = array();
$num = 0;
$max_time = $range_in_days * 24 * 60 * 60 ;
$r_new = hexdec(substr($new_col, 1, 2));
$r_old = hexdec(substr($old_col, 1, 2));
//$r_min = min($min, $max);
//$r_max = max($min, $max);
$r_range = ($r_old-$r_new);
$g_new = hexdec(substr($new_col, 3, 2));
$g_old = hexdec(substr($old_col, 3, 2));
//$g_min = min($min, $max);
//$g_max = max($min, $max);
$g_range = ($g_old-$g_new);
$b_new = hexdec(substr($new_col, 5, 2));
$b_old = hexdec(substr($old_col, 5, 2));
//$b_min = min($min, $max);
//$b_max = max($min, $max);
$b_range = ($b_old-$b_new);
// print "ranges: $r_range, $g_range, $b_range ";
// print "r: ".(0.5*$r_range+$r_new)." ";
foreach($posts as $post)
// The following 5 lines is a manual DISTINCT and LIMIT,
// since mysql 3.x doesn't allow you to control which way a DISTINCT
// select merges multiple entries.
$seen[$post->comment_post_ID] = true;
if($num++ > $num_posts)
$commenters = $wpdb->get_results("SELECT *, UNIX_TIMESTAMP(comment_date) AS unixdate FROM $wpdb->comments
WHERE comment_approved = '1'
AND comment_post_ID = '".$post->comment_post_ID."'
ORDER BY comment_date DESC
$count = $wpdb->get_var("SELECT COUNT(comment_ID) AS c FROM $wpdb->comments WHERE comment_post_ID = $post->comment_post_ID AND comment_approved = '1' ".$ping);
$i = 0;
$link = get_permalink($post->comment_post_ID);
$title = " title=\"Last comment was ".time_since($comment->unixdate)." ago\"";
$title = "";
echo $prefix."".stripslashes($post->post_title). "".$count." \n";
foreach($commenters as $commenter)
$title = " title=\"Posted ".time_since($commenter->unixdate)." ago\"";
$diff = time() - $commenter->unixdate;
$r = round($diff/$max_time*($r_range))+$r_new;
$r = clamp(min($r_new, $r_old), max($r_new, $r_old), $r);
$g = round($diff/$max_time*($g_range))+$g_new;
$g = clamp(min($g_new, $g_old), max($g_new, $g_old), $g);
$b = round($diff/$max_time*($b_range))+$b_new;
$b = clamp(min($b_new, $b_old), max($b_new, $b_old), $b);
$r_hex = str_pad(dechex($r), 2, '0', STR_PAD_LEFT);
$g_hex = str_pad(dechex($g), 2, '0', STR_PAD_LEFT);
$b_hex = str_pad(dechex($r), 2, '0', STR_PAD_LEFT);
$colstr = " style=\"color: #".$r_hex.$g_hex.$b_hex.";\"";
if($i++ > 0)
echo ", ";
if($count > $num_comments)
echo " [...]";
Jambands.com | YEMblog
It was really funny. So Trey called my dad and my dad couldn’t do it. And he was like, ‘This might sound really funny but I have this daughter who lives in New York and she sings too and she might be a good fit.’ And I can’t believe it, because they actually took him seriously. They actually followed up on it. First, Trey’s manager called and asked me to send over some music and a bio. And then I remember, freshman year in my dorm room getting a call from Trey – no big deal (laughing).
The members of The National also have deep roots in the Phish world. One of the band’s earliest predecessor, Equinox—which featured future National members Aaron Dessner (guitar), Bryce Dessner (guitar) and Bryan Devendorf (drums)—covered The Allman Brothers and the Grateful Dead and has a sound that saxophonist Kevin Seal described as “Sorta jammy and the product of listening to a lot of Phish and classic rock radio.” Bryan Devendorf and his brother Scott, who play bass and guitar in The National, also took National frontman Matt Berninger—the only non-jam fan in the group—to a Deer Creek Phish show once. As Aaron Dessner recalled on Jambands.com in 2009, “He listened to one song and then went and hid in the car. Matt can still not understand at all how any of us can stomach Phish but pretty much everyone else in the band grew up on their music.”
But I also like to be realistic. If I want to write a lot of songs and see which songs and which jams are allowing the band and the audience to reach nirvana sooner, then my band is the place to do it because there is just time to try things over and over and over again, a lot.
Actually, the first time I heard Phish was at Justin’s house in high school. He played Hoist for me. He liked them but he never actually went to a show with us. Before that I was listening to Nirvana, and I had a Germs record. I was either going to go the jazz route or the punk route, and the punk thing didn’t work out for me. After Justin played me Hoist, I bought it and I just couldn’t stop listening to it.
TM: (laughs) Well, it’s funny. I have recently seen some stuff on line from young kids, young fans, first time fans, and they get on Phantasy Tour, and a lot of them write good things about Phish lyrics. It has always been my style to be a little bit ambiguous, not the most obvious thing that you would think about, or think what a song is about. If that is what people like about Phish—normally, it is the jamming, the unpredictable nature of live shows, but, the lyrics are part of it. I’m noticing that first time fans are getting it. I think that’s great. I see a lot of “What Are Your Favorite Lyrics?” threads from users I don’t recognize on Phantasy Tour. You know, every now and then, I’ll check them out.
The place has gotten a little negative for me, and it is always the people who stay home, who don’t go to the shows. They see it on paper, and they tear it apart like “oh, this was a terrible show,” and they weren’t even there. Whatever. I’m so not worried about that. And neither is the band, I’ll have you know. In fact, of the four band members, the only one who ever might have a chance of ever getting on Phantasy Tour, I would think, is Mike. For almost six or seven years, Trey doesn’t get online and doesn’t read reviews at all. Do the math.
Superball IX is part of a noble Phish tradition: the summer festival. Tracing the rise of the band and then their sudden collapse, these events are defining moments, each a document of its era. They may not have been the best shows, but they always were the most memorable event of the year. Between the art and the surprise sets and the random encounters that happen when thousands of people camp together, the Phish festivals transcended the concept of being a concert. Phish had a chance to create their own events and in doing so redefined what an event could be.
Mike Gordon and Galactic co-headlined St. Louis, MO’s Pageant last night. Orgone opened the show and the entire night was webcast for free via iClips. During Galactic’s closing set, Gordon sat in on “GoGo.” Galactic’s set also featured previously confirmed guests Cyril Neville and Corey Henry (Rebirth Brass Band).
While the $60 ticket prices this Fall may be a far cry from the $8.50 that a Phish ticket cost at a club in Boston more than 20 years ago, their shows are still more than worth it, and one can’t help but be excited about seeing them again soon. The quality of Phish’s music has always been paramount to the overall experience, of course. Just listen for yourself. And as predictable as part of the setlist may be, so long as they continue to put on a great show, we will be there, and it’ll be up to us to enjoy ourselves. FLUFFHEAD!!!!
In fact, Phish’s Summer tour, which is presently on a brief hiatus before it continues in August with three shows at Berkeley’s Greek Theater, has already covered all of the bases that fans have come to expect from Phish on every tour. While no show has been a start-to-finish, hear-at-all-costs shredapulooza, almost every show had something noteworthy. There were huge bust outs, blistering jams, goofy gimmicks, and now-legendary encores.