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"; } } ?> Taking Out the Trash | Pluranomics.com

    Small silhouette of Doug Wolkon WELCOME TO PLURANOMICS, THE ECONOMICS OF MANY.

    Taking Out the Trash

    Given the poor state of the economy, isn’t it inevitable that the system for trash removal commonly referred to as “Pay As You Throw” is soon coming to a theater near you? So what happens when our cities and towns charge us individually by weight and/or size for the trash we produce?

    Think about how much trash is being imported into your city everyday, only to be removed and sent to never never land the next day. The inefficiency of such an economic system is soon to be confronted. We have no choice. Our cities and towns can no longer afford to just turn the cheek and waste all that energy.

    They say “a penny saved is a penny earned”. And since earnings are deteriorating, its time to save our pennies. Well the same goes for trash. For it is an extremely expensive operation to ship the trash, store the trash in a landfill, employ garbage collectors to move the trash, treat the contaminated trash, provide insurance for the trash operation, and purchase and maintain the garbage truck. Not to mention the whole thing stinks (pew!).

    Does our current flat tax for trash pick-up and disposal not lead to excessive trash production; which is to the strategic advantage of business monopolies (i.e. big box retail) that purposely produce and manufacture things in far away places that require packages of trash; and is to the disadvantage of everyone else?

    So is it possible to charge each citizen individually for the amount of trash they produce? Is it wise? Yes, and in fact Seattle has been doing it for quite some time now, and Plymouth, MA recently announced such a tax by weight and size; and municipalities all over the country will soon be forced to follow suit.

    In any case, can you imagine the flurry of changes that will be triggered by such inevitable circumstances. To appreciate the domino effect that will occur, it is most important to appreciate that most supermarkets, as well as other retail monopolies that use trash to distribute the economic essentials of food and clothing, operate on a 2-3% profit margin; so it won’t take much to see their little bitty margins eroded by such equitable trash charges. So what else happens? A lot.

    Generally, trash imports (packaged goods of all kinds) will dramatically decline, which triggers a wave of new entrepreneurial ideas. It will be the final shoe to drop on the rising costs and deteriorating quality of long-distance imports to America, otherwise known as inflation. So who will be the winners and who will be the losers?

    Local fresh produce will be the obvious winner, and deservingly so. Although the superior freshness of local produce has been unconsciously overlooked for quite sometime now, making people pay for their own trash will finally make eating local the overwhelming choice; as alternative food choices are almost all excessively packaged in cardboard and/or plastic.

    Of course certain strategic foods, such as Idaho Potatoes, California Avocados, and Florida Oranges that are basically transported in their natural package trash-free, will also benefit from forcing the consumer to pay for their own trash.

    In addition, and just as important, retail distribution will change dramatically so. Fast food, which has been synonymous with packaged food (think how much garbage a meal at McDonald’s produces) will be eaten alive. Pizza boxes wil be out the door. Welcome to more slices, less to go meals, more made to order meals, and more raw food.

    Local businesses will immediately form to provide canning, bottling and packaging on site; which will allow for true recycling to occur (the package will only be sterilized, but never changes form or place). For example, local milk farms will provide delivery and pick-up service for fresh milk in glass bottles once again. From locally produced tomato sauces, jams, and wholesome baby food, the possibilities of operating in real time are endless.

    Or how about a nice corked wine bottle for drinking water. Yes, locally filtered drinking water is another beneficial outcome. It will no longer make sense to import plastic bottled water when you have access to better quality water at a much cheaper price, all the while avoiding the unknown risks of the recently popular petroleum-based plastic bottles (reminds me a lot of the once unknown risks of mercury in tooth fillings – I am still sucking on mine).

    Old school mom and pop businesses will organically come back into fashion one after another. Local tailors and seamstresses, as well as repair shops for shoes, autos and electronics will begin to prosper once again.

    The hugely wasteful energy system to move all that plastic in and out of the cities will be saved, the pollution avoided, and the landfills topped off. And think about all the new employment opportunities. All from simply charging each individual separately for the trash that they produce (OK, a weak dollar also helps!).

    Oh, and the losers? In a nutshell, I would not want to be Walmart.


    Related Posts

    comment_status) && ('open' == $post->ping_status)) : // Comments and trackbacks open ?> comment_status) && ('open' == $post->ping_status)) : // Only trackbacks open ?> comment_status) && !('open' == $post->ping_status)) : // Only comments open ?> comment_status) && !('open' == $post->ping_status)) : // Comments and trackbacks closed ?> ", ""); ?>

    Post a Comment

    Your email is never published nor shared.
    All comments are held for approval and will not appear immediately.
    Links and paragraphs are formatted automatically.
    Some HTML is allowed… <a>, <strong>

    (will not be published)
    (optional)

    Subscribe to Comments