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

UNIQ21ab10f6478498a7-rss-00000000-QINU UNIQ21ab10f6478498a7-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>

How The IoT Will Change The Chip

Sun, 29 May 2016 18:33:00

"Get ready for some big changes in the 'silicon' of Silicon Valley," writes tech CEO Narbeh Derhacobian who argues that the need to build tens of billions of connected sensor devices will change the way computers get built. "Just like smartphone owners like to pick and choose which apps they want, IoT manufacturers may want to shop for components individually without being locked into a single fab." An anonymous reader summarizes his article on TechCrunch:

Thousands of different hardware devices, each selling around one million units, "would suggest the need for a much greater diversity of chip configurations than we've seen to date." Currently smartphones are engineered using a "System on a Chip" design where all the components are "locked into a single manufacturing process," but Derhacobian predicts chip manufacturers will continue a trend of moving towards a "System in a Package" approach -- "packing components closely together, without the complete, end-to-end integration... In a smart, connected world, sensor requirements could vary greatly from factory to factory, not to mention between industries as varied as agriculture, urban planning and automotive."

"In some ways, the great trends of the PC and smartphone eras were toward standardization of devices. Apple's great vision was understanding that people prefer a beautiful, integrated package, and don't need many choices in hardware. But in software it's generally the opposite. People have different needs, and want to select the apps and programs that work best for them."

Share on Google+


Read more of this story at Slashdot.

William Gibson Announces New Sci-Fi Comic Book

Sun, 29 May 2016 17:33:00

68-year-old science fiction author William Gibson just released a complicated new science fiction comic book, and this weekend Ars Technica proclaimed that "the results are grand". An anonymous reader shares their report:

A father and son occupy the new White House as President and Vice President. We never meet dad, but his son -- an evil jerk by the name of Junior Henderson -- has been surgically altered to resemble his grandfather, because Junior is about travel to an alternate Earth in 1945 to take grandpa's place, with the intent of remaking that world more to his liking (and, presumably, to prevent whatever it was that laid waste to the one we start off in)...The world is in ruins. The White House relocated to the ominous-sounding National Emergency Federal District in Montana. They have technology that far outstrips our own... "It's an alternate-history/cross-worlds story," Gibson writes... "And I wouldn't want to spoil too much of the frame, because that's an inherent part of our narrative. But I will say that one of the first verbal tags we had for the material was 'Band Of Brothers vs. Blackwater.'"

On his Twitter feed, Gibson is also applauding the news that Marvel and DC comics abandoned a two and a half year legal battle to enforce their trademark on the word "superhero" against a publisher in the U.K.

Share on Google+


Read more of this story at Slashdot.

Mugger Arrested After Victim Spots Him On Facebook's 'People You May Know'

Sun, 29 May 2016 16:30:00

An anonymous reader quotes a report from BGR: In a somewhat bizarre story which proves that truth is often stranger than fiction, a serial mugger in England was arrested after one of his victims spotted him under Facebook's 'People you may know' section.Originally reported by the BBC, 21-year old Omar Famuyide had a long history of theft, muggings and armed robberies to his name. Not too long ago, Famuyide brandished a knife and stole a car. Flash forward a bit, and the victim of said car robbery was recently shocked to see Famuyide's face pop up as a suggested friend he might want to add on Facebook. The victim promptly called the police who quickly managed to tie him to a large number of other violent crimes. By the time the dust settled and the full extent of Famuyide's criminal rampage was revealed, Famuyide was sentenced to 17 years in prison. His Facebook profile ultimately led to charges of robbery, attempted robbery, and possessing a firearm.

Share on Google+


Read more of this story at Slashdot.

Fiverr Suffers Six-Hour DDoS Attack After Removing DDoS-For-Hire Listings

Sun, 29 May 2016 15:30:00

Two days after Fiverr, a marketplace for digital services, removed user listings from its website that advertised DDoS-for-hire services, the company's website suffered a six-hour long DDOS attack. Softpedia reports: The incident took place on the morning of May 27 (European timezones), and the service admitted its problems on its Twitter account. At the time of writing, Fiverr has been back up and functioning normally for more than two hours. Fiverr's problems stem from an Incapsula probe that found DDoS-for-hire ads on its marketplace, available for $5. Incapsula reported the suspicious listings to Fiverr, who investigated the issue and removed the ads. Fiverr first removed all listings advertising blatantly illegal DDoS services, but later also removed the ads offering to "test" a website for DDoS "protection" measures.

Share on Google+


Read more of this story at Slashdot.

Is Denver The Next High-Tech Center?

Sun, 29 May 2016 14:30:00

An anonymous reader write: "The spread of the tech industry outside Silicon Valley has helped make Denver the fastest-growing large city in the U.S.," reports the New Yorker, saying it's now growing faster than Austin and Seattle, becoming one of America's 20 most populous cities. Cost-conscious investors and tech executives now are opening offices in cheaper "secondary cities" outside of Silicon Valley, like Salt Lake City, and the good universities near Denver mean a well-educated workforce, coupled with a low cost of living.

"Though the city isn't the headquarters for any big tech companies -- like Dell in the Austin area or Microsoft and Amazon in Seattle -- several of them, including IBM and Oracle, have offices here. The presence of those offices, and of the universities, has also helped create a vibrant startup scene: people get educated here or come here for jobs, and then they graduate or leave those jobs and become entrepreneurs." Last year venture capitalists invested $800 million in Demver's tech, energy, food, and marijuana companies, and in 2014 Oracle paid over a billion dollars to acquire Denver-based Datalogix.

Anyone else live in a burgeoning "secondary" tech city? Scott McNealy said he co-founded his data-analysis startup in Denver because in California "The prices of everything have skyrocketed. The regulations. The pension deficit. The traffic. It's just not a fun place to go start."

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;
}

?>