Template:Mainpage-rssfeeds

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 16:31, 29 July 2006 by Ramuk (Talk | contribs)

Jump to: navigation, search

UNIQ2f7e195d61d1f5a8-rss-00000000-QINU UNIQ2f7e195d61d1f5a8-rss-00000001-QINU

GISWiki/RSS

Uses an extension from: http://meta.wikimedia.org/wiki/GISWiki/RSS

RSS-Feed Mediawiki extension

  • original by mutante 25.03.2005
  • extended by Duesentrieb 30.04.2005
  • extended by Rdb78 07.07.2005
  • extended by Mafs 10.07.2005, 24.07.2005
  • extended by User:Arcy 07.09.2005
  • Updated for MediaWiki 1.6 by User:piku 13.06.2006
  • Update for Wikicode output, by User:cogdog 14.jul.2006

Requires:

Installation:

  • put this file (rss.php) into the extension directory of your mediawiki installation
  • add the following to the end of LocalSettings.php: include("extensions/rss.php");
  • make sure magpie can be found by PHP.

Usage:

Use one section between <rss>-tags for each feed. The rss section may contain parameters separated by a pipe ("|"), just like links and templates. These parameters are supported:

charset = ... The charset used by the feed. iconv is used to convert this.
short Do not show the description text for each news item.
max = x Shows x most recent headlines.
highlight = term1 term2 The terms separated by a space are highlighted.
filter = term1 term2 Show only rss items containing at least one of the terms.
reverse display the rss items in reverse order.
title = x display an alternative title instead of chanel name.
title = none dont display any title.

Example:

<rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>

Librarians: The Google Before Google

Mon, 22 Dec 2014 03:57:00

An anonymous reader writes NPR has an article about the questions people ask librarians. Before the internet, the librarian was your best bet for a quick answer to anything on your mind. "We were Google before Google existed," NYPL spokesperson Angela Montefinise explains. "If you wanted to know if a poisonous snake dies if it bites itself, you'd call or visit us." The New York Public Library in Manhattan recently discovered a box of old reference questions asked by patrons and plans to release some in its Instagram account. Here are a few of the best: I just saw a mouse in the kitchen. Is DDT OK to use? (1946) What does it mean when you dream of being chased by an elephant? (1947)Can you tell me the thickness of a U.S. Postage stamp with the glue on it? Answer: We couldn't tell you that answer quickly. Why don't you try the Post Office? Response: This is the Post Office. (1963)Where can I rent a beagle for hunting? (1963)

Share on Google+

Read more of this story at Slashdot.








"Infrared Curtain" Brings Touchscreen Technology To Cheap Cars

Mon, 22 Dec 2014 01:51:00

An anonymous reader writes with news about an affordable way to integrate touch screen technology in any car. "Although touchscreen controls are appearing in the dashboards of an increasing number of vehicles, they're still not something that one generally associates with economy cars. That may be about to change, however, as Continental has announced an "infrared curtain" system that could allow for inexpensive multi-touch functionality in any automobile. The infrared curtain consists of a square frame with a series of LEDs along two adjacent sides, and a series of photodiodes along the other two. Each LED emits a beam of infrared light, which is picked up and converted into an electrical signal by the photodiode located in the corresponding spot on the opposite side of the frame."

Share on Google+

Read more of this story at Slashdot.








Viacom's Messy Relationship With YouTube and The Rise of Stephen Colbert

Mon, 22 Dec 2014 00:40:00

Presto Vivace writes with this story about how Stephen Colbert became a YouTube Megastar. "Clips from The Colbert Report soon became a staple at YouTube, a startup that was making it easier for anyone and everyone to upload and watch home movies, video blogs, and technically-illicit-but-increasingly-vanilla clips of TV shows from the day before. And Colbert’s show was about to find itself at the center of a conflict between entertainment media and the web over online video that’s shaped the last decade. In fact, The Colbert Report has been defined as much by this back-and-forth between Hollywood and the web as by the cable news pundits it satirizes....A year after The Colbert Report premiere, Google acquired YouTube for $1.65 billion in stock. Five months later, Viacom sued YouTube and Google for copyright infringement, asking for $1 billion in damages. The value of these videos and their audiences were clear. The Colbert Report and “Stephen Colbert” are mentioned three times in Viacom’s complaint against YouTube, as much or more than any other show or artist."

Share on Google+

Read more of this story at Slashdot.








The Magic of Pallets

Sun, 21 Dec 2014 23:29:00

HughPickens.com writes Jacob Hodes writes in Cabinet Magazine that there are approximately two billion wooden shipping pallets in the holds of tractor-trailers in the United States transporting Honey Nut Cheerios and oysters and penicillin and just about any other product you can think of. According to Hodes the magic of pallets is the magic of abstraction. "Take any object you like, pile it onto a pallet, and it becomes, simply, a "unit load"—standardized, cubical, and ideally suited to being scooped up by the tines of a forklift. This allows your Cheerios and your oysters to be whisked through the supply chain with great efficiency; the gains are so impressive, in fact, that many experts consider the pallet to be the most important materials-handling innovation of the twentieth century." Although the technology was in place by the mid-1920s, pallets didn't see widespread adoption until World War II, when the challenge of keeping eight million G.I.s supplied—"the most enormous single task of distribution ever accomplished anywhere," according to one historian—gave new urgency to the science of materials handling. "The pallet really made it possible for us to fight a war on two fronts the way that we did." It would have been impossible to supply military forces in both the European and Pacific theaters if logistics operations had been limited to manual labor and hand-loading cargo. To get a sense of the productivity gains that were achieved, consider the time it took to unload a boxcar before the advent of pallets. "According to an article in a 1931 railway trade magazine, three days were required to unload a boxcar containing 13,000 cases of unpalletized canned goods. When the same amount of goods was loaded into the boxcar on pallets or skids, the identical task took only four hours." Pallets, of course, are merely one cog in the global machine for moving things and while shipping containers have had their due, the humble pallet is arguably "the single most important object in the global economy."

Share on Google+

Read more of this story at Slashdot.








26 Foot Long Boat 3D Printed In 100,000 Different Pieces

Sun, 21 Dec 2014 22:16:00

First time accepted submitter Talk Prizes writes Hung-Chih Peng, a Taiwanese artist, has decided to 3D print a boat measuring 26 feet in length. The piece, called "The Deluge – Noah's Ark" is a twisted wrecked boat which he had to 3D print in 100,000 different pieces and then glue it all together. "...The Deluge is Peng’s way of showing the inability that humans have exhibited in rectifying uncontrollable catastrophic challenges. Climate change, ecological crises, and environmental pollution are all changes that this planet is facing, yet seemingly humans do not have a way to correct these problems. The work is meant as a metaphor for showing the battle being waged by Mother Nature on the accelerated development of industrialized civilization."

Share on Google+

Read more of this story at Slashdot.









rss.php

<?php
# RSS-Feed Mediawiki extension
# 
# original by mutante 25.03.2005
# extended by Duesentrieb 30.04.2005
# extended by Rdb78 07.07.2005
# extended by Mafs  10.07.2005, 24.07.2005
# extended by User:Arcy  07.09.2005
# Updated for MediaWiki 1.6 by User:piku 13.06.2006
# Update for Wikicode output, by User:cogdog 14.jul.2006
#
# Requires: 
#  * magpie rss parser <http://magpierss.sourceforge.net/>
#  * iconv <http://www.gnu.org/software/libiconv/>, see also <http://www.php.net/iconv>
#
# Installation:
#  * put this file (rss.php) into the extension directory of your mediawiki installation 
#  * add the following to the end of LocalSettings.php: include("extensions/rss.php");
#  * make sure magpie can be found by PHP.
#
# Usage:
#  Use one section between <rss>-tags for each feed. The rss section may contain parameters
#  separated by a pipe ("|"), just like links and templates. These parameters are supported:
#
#    * charset=...             The charset used by the feed. iconv is used to convert this.
#    * short                   Do not show the description text for each news item.
#    * max=x                   Shows x most recent headlines.
#    * highlight= term1 term2  The terms separated by a space are highlighted.
#    * filter= term1 term2     Show only rss items containing at least one of the terms.
#    * reverse                 display the rss items in reverse order.
#    * title=x                 display an alternative title instead of chanel name.
#    * title = none            dont display any title.
#
# Example: 
#    <rss>http://slashdot.org/slashdot.rss|charset=UTF-8|short|max=5</rss>
#

#change this according to your magpie installation!
require_once('rss_fetch.inc'); 

#install extension hook
$wgExtensionFunctions[] = "wfRssExtension"; 

#extension hook callback function
function wfRssExtension() { 
  global $wgParser;

  #install parser hook for <rss> tags
  $wgParser->setHook( "rss", "renderRss" );
}

#parser hook callback function
function renderRss($input, $argv, $parser = null) {
  if (!$parser) $parser =& $GLOBALS['wgParser'];
  global $wgOutputEncoding;

  $DefaultEncoding = "ISO-8859-1";
  $DisableCache = true;

  # $input = mysql_escape_string($input);

  if (!$input) return ""; #if <rss>-section is empty, return nothing

  #parse fields in rss-section
  $fields= explode("|",$input);
  $url= @$fields[0];

  $args= array();
  for ($i=1; $i<sizeof($fields); $i++) {
    $f= $fields[$i];

    if (strpos($f,"=")===False) $args[strtolower(trim($f))]= False;
    else {
      list($k,$v)= explode("=",$f,2);
      if (trim($v)==False) $args[strtolower(trim($k))] = False; 
      else $args[strtolower(trim($k))]= trim($v);
    }
  }

  #get charset from argument-array    
  $charset= @$args["charset"];
  if (!$charset) $charset= $DefaultEncoding;

  #get max number of headlines from argument-array
  $maxheads = @$args["max"];
  $headcnt = 0;

  #get short-flag from argument-array
  #if short is set, no description text is printed
  if (isset($args["short"])) $short = True; else $short = False;

  #get reverse-flag from argument-array
  if (isset($args["reverse"])) $reverse = True; else $reverse = False;

  #get highlight terms from argument-array    
  $rssHighlight= @$args["highlight"];
  $rssHighlight= str_replace("  "," ", $rssHighlight);
  $rssHighlight= explode(" ", trim($rssHighlight));

  #get filter terms from argument-array    
  $rssFilter= @$args["filter"];
  $rssFilter= str_replace("  "," ", $rssFilter);
  $rssFilter= explode(" ", trim($rssFilter));    

  #fetch rss. may be cached locally.
  #Refer to the documentation of magpie for details.
  $rss = @fetch_rss($url);


  #check for errors.
  if ($rss->ERROR) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url: ".$rss->ERROR."</div>"; #localize...
  }

  if (!is_array($rss->items)) {
     # return "Feed error"; #localize...
      #return "<div>Failed to load RSS feed from $url!</div>"; #localize...
  }

  #Bild title line    
  #get title from argument-array    
  
  $rssTitle= @$args["title"];
  $rssTitle= trim($rssTitle);

  if ($rssTitle !=='none') {
    if ($rssTitle=='') {
        $title= iconv($charset,$wgOutputEncoding,$rss->channel['title']);
        if ($rss->channel['link']) $title= "[".$rss->channel['link']." $title]";
        $output = "=== $title ===\n";
    }
    else
    {
      $title= "[".$rss->channel['link']." $rssTitle]";
      $output="=== $title ===\n";
    }
  } else {
      $output="\n\n\n";
  }
  
  if ($reverse) $rss->items = array_reverse($rss->items);

  $description = False; 
  foreach ($rss->items as $item) {
      if ($item['description']) {$description = True; break;}
  }

  #Bild items
  if (!$short and $description) { #full item list

    $output.="";
    foreach ($rss->items as $item) {

      $d_text = true;
      $d_title = true;

      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

      $d_title = wfRssFilter ($title, $rssFilter);
      $title= wfRssHighlight($title, $rssHighlight);

      #bild description text if desired
      if ($item["description"]) {
        $text= trim(iconv($charset,$wgOutputEncoding,$item['description']));

        #avoid pre-tags
        $text= str_replace("\r"," ",$text);
        $text= str_replace("\n"," ",$text);
        $text= str_replace("\t"," ",$text);

        $d_text = wfRssFilter ($text, $rssFilter);
        $text= wfRssHighlight($text, $rssHighlight);

        $display = $d_text or $d_title;

      }
        else   {
          $text = "";
          $display = $d_title;
        }       

      if ($display) {
        $output.="* [$href $title]";
        if ($text) $output.="<br>$text";
        $output .= "\n";
      }

    #Cut off output when maxheads is reached:
    if (++$headcnt == $maxheads)  break;

    }
    # $output.="</dl>";
  }
  else { #short item list
   #  $output.="<ul>";
    foreach ($rss->items as $item) {
      $href = trim(iconv($charset,$wgOutputEncoding,$item['link']));
      $title = trim(iconv($charset,$wgOutputEncoding,$item['title']));

        $d_title = wfRssFilter ($title, $rssFilter);
        $title= wfRssHighlight($title, $rssHighlight);

        if ($d_title ) $output.="* [$href $title]\n";

      #Cut off output when maxheads is reached:
      if (++$headcnt == $maxheads)  break;
    }
    # $output.="</ul>";
  }


  if ($DisableCache) {

    global $wgVersion;

    # Do not cache this wiki page.
    # for details see http://public.kitware.com/Wiki/User:Barre/MediaWiki/Extensions
    global $wgTitle, $wgDBprefix;
    $ts = mktime();
    $now = gmdate("YmdHis", $ts + 120);
    $ns = $wgTitle->getNamespace();
    $ti = wfStrencode($wgTitle->getDBkey());

    $version = preg_replace("/^([1-9]).([1-9]).*/", "\\1\\2", $wgVersion);
    if ($version>14) $sql = "UPDATE $wgDBprefix"."page SET page_touched='$now' WHERE page_namespace=$ns AND page_title='$ti'";
    else             $sql = "UPDATE $wgDBprefix"."cur SET cur_touched='$now' WHERE cur_namespace=$ns AND cur_title='$ti'";

    wfQuery($sql, DB_WRITE, "");
  }

  $out = $parser->parse ($output, $parser->mTitle,$parser->mOptions, true, false);
  return $out->getText();
}


function wfRssFilter ($text, $rssFilter) {

  $display = true;

  if (is_array($rssFilter)) {
    foreach($rssFilter as $term) {

      if ($term) {
        $display = false;
        if (preg_match("|$term|i", $text, $a))  {  $display = true; return $display; }
      }
    if ($display) break;
    }
  }
  return $display;
}


function wfRssHighlight($text, $rssHighlight) {

  $i=0;
  $starttag = "v8x5u3t3u8h";
  $endtag   = "q8n4f6n4n4x";

  $color[]="coral";
  $color[]="greenyellow";
  $color[]="lightskyblue";
  $color[]="gold";
  $color[]="violet";

  $count_color = count($color);

  if (is_array($rssHighlight)) {
    foreach($rssHighlight as $term) {
      if ($term) {
        $text = preg_replace("|\b(\w*?".$term."\w*?)\b|i", "$starttag"."_".$i."\\1$endtag", $text);
        $i++;
        if ($i == $count_color) $i=0;
        }
      }
    }
  # to avoid trouble should someone wants to highlight the terms "span", "style", ...
  for ($i=0; $i<5; $i++) {
    $text = preg_replace("|$starttag"."_".$i."|", "<span style=\"background-color:".$color[$i]."; font-weight: bold;\">", $text);
    $text = preg_replace("|$endtag|", "</span>", $text);
    }

  return $text;
}

?>