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

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

Apple To Offer 32GB of Desktop RAM, Kaby Lake In Top-End 2017 MacBook Pro, Says Analyst

Tue, 17 Jan 2017 02:00:00

AppleInsider has obtained a note to investors from KGI analyst Ming-Chi Kuo that says Apple's 2017 laptop line will focus on internal component updates, including the platform-wide adoption of Intel's Kaby Lake architecture. What's more is that Apple is expected to manufacture a 15-inch MacBook Pro with up to 32GB of RAM in the fourth quarter of 2017. AppleInsider reports: Apple took flak in releasing its latest MacBook Pro with Touch Bar models with a hard memory cap of 16GB, an minimal allotment viewed as a negative for imaging and video professionals. Responding to customer criticism, Apple said the move was made in a bid to maximize battery life. Essentially, the Intel Skylake CPUs used in Apple's MacBook Pro only support up to 16GB of LPDDR3 RAM at 2133MHz. Though Intel does make processors capable of addressing more than 16GB of memory, those particular chipsets rely on less efficient DDR4 RAM and are usually deployed in desktops with access to dedicated mains power. In order to achieve high memory allotments and keep unplugged battery life performance on par with existing MacBook Pro models, Apple will need to move to an emerging memory technology like LPDDR4 or DDR4L. Such hardware is on track for release later this year. As for the 12-inch MacBook, Kuo believes next-generation versions of the thin-and-light will enter mass production in the second quarter with the same basic design aesthetic introduced in 2015. New for 2017 is a 16GB memory option that will make an appearance thanks to Intel's new processor class.

Share on Google+


Read more of this story at Slashdot.

Oculus Accused of Destroying Evidence, Zuckerberg To Testify In $2 Billion Lawsuit

Tue, 17 Jan 2017 01:20:00

An anonymous reader quotes a report from Ars Technica: ZeniMax Media, the parent company of both Bethesda Softworks and Id Software, says it will prove at trial that John Carmack and others at Oculus stole trade secrets to "misappropriate" virtual reality technology that was first developed while Carmack was working at Id Software. What's more, ZeniMax is now accusing Oculus of "intentional destruction of evidence to cover up their wrongdoing." Mark Zuckerberg, CEO of Oculus parent company Facebook, is scheduled to respond to those accusations in testimony starting tomorrow, according to a report by Business insider. ZeniMax's statement comes after Carmack testified at trial last week, saying the case was "ridiculous and absurd." His testimony echoed Oculus' initial reaction when ZeniMax's accusations first surfaced in 2014. In court filings leading up to the trial, ZeniMax detailed its case that Carmack, while still an employee at Id Software, "designed the specifications and functionality embodied in the Rift SDK and directed its development." Carmack's technology and guidance allegedly "literally transformed" Oculus founder Palmer Luckey's early Rift prototype from a "primitive virtual reality headset" that was "little more than a display panel." Carmack allegedly used "copyrighted computer code, trade secret information, and technical know-how" from his time at ZeniMax after he moved to Oculus as CTO in 2013. As the trial began last week (as reported by a Law360 summary, registration required), Carmack told the court of his development of a virtual reality demo for Doom 3 in 2012 and his search for a VR headset that would be suitable to run it. That's when he says he got in touch with Luckey, leading to the now legendary E3 2012 demo that introduced Oculus to the public. ZeniMax is seeking $2 billion in damage, which matches the value that Facebook paid for Oculus in 2014. The trial is expected to last three weeks.

Share on Google+


Read more of this story at Slashdot.

Amazon Seeks FCC Permission To Run Wireless Tests In Washington State

Tue, 17 Jan 2017 00:40:00

Amazon has filed an application with the U.S. federal government that details plans to experiment with wireless communications technology. The application asks the FCC for permission "to test undisclosed prototypes and their related software for five months in and around its Seattle headquarters," reports Christian Science Monitor. "The experiments will involve mobile devices and anchored stations alike, according to an FCC application made public last week and first reported by Business Insider's Eugene Kim, who noted the project could be part of Amazon's drone-delivery initiatives or something even more novel." From the report: In recent years, Google and Facebook have begun conducting wireless experiments of their own with FCC approval, pursuing a number of innovative projects, such as self-driving cars, as Mr. Kim reported. Amazon, meanwhile, has focused on its aspirations of drone delivery service for its online retail business -- a service the firm has pursued in Britain and several other countries as well. Given the company's wide-ranging interests, it is difficult to anticipate precisely what the tests entail. Last year alone, Amazon unveiled projects to change the way people grocery shop, offer drivers a voice-activated driving assistant, and ship cargo with its own branded planes, as the Monitor reported. Amazon's application to the FCC notes that the tests would begin indoors at the Seattle headquarters then later move outdoors to a customer service site more than 220 miles away, in Kennewick, Wash. The tests would last five months, beginning as early as Feb. 11, 2017, the documents state.

Share on Google+


Read more of this story at Slashdot.

AT&T Denies Refunds For DirecTV Now Customers, Despite the Service's Performance Issues

Tue, 17 Jan 2017 00:00:00

A number of consumers report they're unable to get a refund for their subscription to AT&T's recently launched streaming service, DirecTV Now -- something they've requested after being unhappy with the new service's performance. From a report on TechCrunch: According to several postings on AT&T's official forums, customers found the only way to get help was through a hard-to-find chat feature, and when they asked the AT&T reps about refunds, the customers were told they were not offered. Writes one user with the handle EIUdrummerboy, after attempting to get a refund via chat, the rep told them specifically: "We do not currently have a policy in place to offer any refunds."

Share on Google+


Read more of this story at Slashdot.

ISIS Is Dropping Bombs With Drones In Iraq

Mon, 16 Jan 2017 23:20:00

In addition to rifles, mortars, artillery and suicidal car bombs, ISIS has recently added commercial drones, converted into tiny bombs, into the mix of weapons it uses to fight in Iraq. In October, The New York Times reported that the Islamic State was using small consumer drones rigged with explosives to fight Kurdish forces in Iraq. Two Kurdish soldiers died dismantling a booby-trapped ISIS drone. Several months later and it appears the use of drones on the battlefield is becoming more prevalent. Popular Science reports: Previously, we've seen ISIS scratch-build drones, and as Iraqi Security Forces retook parts of Mosul, they discovered a vast infrastructure of workshops (complete with quality control) for building standardized munitions, weapons, and explosives. These drone bombers recently captured by Iraqi forces and shared with American advisors appear to be commercial, off-the-shelf models, adapted to carry grenade-sized payloads. "It's not as if it is a large, armed UAV [unmanned aerial vehicle] that is dropping munitions from the wings -- but literally, a very small quadcopter that drops a small munition in a somewhat imprecise manner," [Col. Brett] Sylvia, commander of an American military advising mission in Iraq, told Military Times. "They are very short-range, targeting those front-line troops from the Iraqis." Because the drones used are commercial models, it likely means that anti-drone weapons already on hand with the American advisors are sufficient to stop them. It's worth noting that the bomb-dropping drones are just a small part of how ISIS uses the cheap, unmanned flying machines. Other applications include scouts and explosive decoys, as well as one-use weapons. ISIS is also likely not the first group to figure out how to drop grenades from small drones; it's a growing field of research and development among many violent, nonstate actors and insurgent groups. Despite the relative novelty, it's also likely not the deadliest thing insurgents can do with drones.

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

?>