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") { global $wpdb; function clamp($min, $max, $val) { return max($min,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. if(!$hide_pingbacks_and_trackbacks) $ping = ""; else $ping = "AND comment_type<>'pingback' AND comment_type<>'trackback'"; $posts = $wpdb->get_results("SELECT comment_post_ID, post_title FROM ($wpdb->comments LEFT JOIN $wpdb->posts ON (comment_post_ID = ID)) WHERE comment_approved = '1' AND $wpdb->posts.post_status='publish' $ping ORDER BY comment_date DESC;"); $seen = array(); $num = 0; if($fade_old) { $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. if(array_key_exists($post->comment_post_ID, $seen)) continue; $seen[$post->comment_post_ID] = true; if($num++ > $num_posts) break; $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."' $ping ORDER BY comment_date DESC LIMIT $num_comments;"); $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); if($usetimesince) $title = " title=\"Last comment was ".time_since($comment->unixdate)." ago\""; else $title = ""; echo $prefix."".stripslashes($post->post_title). "  ".$count."
    \n"; foreach($commenters as $commenter) { if($usetimesince) $title = " title=\"Posted ".time_since($commenter->unixdate)." ago\""; if($fade_old) { $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 ", "; echo "comment_ID."\"$title>".stripslashes($commenter->comment_author).""; } if($count > $num_comments) echo " [...]"; echo "".$postfix."\n"; } } ?> 2011 December 13 | YEMblog

    Daily Archive

    December 13, 2011

    Webcasts: Phish To Offer Pay-Per-View Webcasts of MSG NYE Run [Hidden Track]

    Continuing a trend started last New Year’s Run, Phish is once again teaming up with Nugs.net to offer Pay-Per-View broadcasts of all four NYE Run shows set to take place at Madison Square Garden on December 28-31. If you look at the LivePhish page for the MSG shows, you’ll see a link for a $55 four-day pass marked as “Live Video.”

    Reviews: New Release – Phish Hampton / Winston-Salem ’97 [Dog Gone Blog]

    Set between the abstract psychedelia that stretched from 1994-1996 and the cosmic rock that formed between 1998 and 2000, this phase marked the largest upending in Phish’s career since they graduated from playing Grateful Dead and Wilson Pickett tunes in the 80s. The inspiration for this transition came while performing the entirety of Talking Heads’ Remain in Light on Halloween ’96, gradually taking hold over the following year, and finally coming to fruition during the fall of ’97.

    Features: A Conversation with HT and YEMblog’s Scott Bernstein [KickShuffle]

    That leads me to my next question – what advice would you give to up and coming bands?

    Put on a great live show and make each performance interesting. Gain an audience by becoming a great live act and then those fans will buy your studio efforts. You don’t need to be a jam band to change your setlist every night. And don’t undervalue  Spotify. Ask your fans to add your music to their shared playlists. I’ve discovered plenty of acts that way in 2011.

    Cactus: Mike Gordon 12/11/2011 Don’t Do It [VQ: B, AQ: B]

    YouTube Preview Image

    Interviews: Mike Gordon – A Peak Experience [CT.com]

    “There’s so much about this that you wouldn’t believe,” Gordon said. “It’s great because the two parts of my career inspire each other: Phish is going great; it’s inspiring and musically it’s incredibly fun, and there are a lot of perks. But I don’t get to write most of the material. I do get to contribute songs, but there’s only so much space to develop them.”

    Remembrances: Albany – Twelve-Thirteen [Phish Thoughts]

    Trey Anastasio: TAB 11/11/2011 First Tube, Black Dog [VQ: B, AQ: A+]

    YouTube Preview Image

    Phish: 11/25/1998 DAUD New Source Albany, NY

    Songs: Song History – Traveled Too Far [Phish.net]

    Reviews: Unapologetic Fall ’97 Booster on Hampton 11/21/97 [WaxBanks]

    Cactus: Mike Gordon 12/11/2011 Playlist [VQ: Varies From B+ – C-, AQ: B]

    Set 1: Horizon Line, Only A Dream, I’m Deranged > The Way It Goes, Just A Rose > Voices, River Niger, Don’t Do It > Horizon Line

    Set 2: Funky Bitch, Sugar Shack, Hand In My Pocket, Dig Further Down, Crumblin’ Bones, Skin It Back, Hap-Nappy, Won’t Get Fooled Again

    Encore: Suzy Greenberg w/ Dude of Life