Template:Mainpage-rssfeeds
From NAS-Central Buffalo - The Linkstation Wiki
(→RSS-Feed Mediawiki extension) |
m |
||
| Line 6: | Line 6: | ||
Uses an extension from: | Uses an extension from: | ||
http://meta.wikimedia.org/wiki/GISWiki/RSS | http://meta.wikimedia.org/wiki/GISWiki/RSS | ||
| - | |||
__NOTOC__ | __NOTOC__ | ||
==RSS-Feed Mediawiki extension== | ==RSS-Feed Mediawiki extension== | ||
| - | |||
* original by mutante 25.03.2005 | * original by mutante 25.03.2005 | ||
* extended by Duesentrieb 30.04.2005 | * extended by Duesentrieb 30.04.2005 | ||
| Line 47: | Line 45: | ||
<pre><nowiki> | <pre><nowiki> | ||
| + | |||
| + | ===rss.php=== | ||
<?php | <?php | ||
Revision as of 16:22, 29 July 2006
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:
- 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>
Google's Crazy Lack of Focus: Is It Really Serious About Enterprise?
Wed, 19 Jun 2013 09:21:00
curtwoodward writes "Driverless cars. Balloon-based wireless networks. Face-mounted computers. Gigabit broadband networks. In recent months, Google has been unveiling a series of transformative side projects that paint a picture of the search pioneer expanding far beyond an online advertising company. At the same time, Google has been trying to convince enterprise software buyers that it's finally, really, truly serious about competing with Microsoft for their business. Which version of Google's future should you believe?"
Read more of this story at Slashdot.
Cat-like Robot Runs Like the Wind
Wed, 19 Jun 2013 07:27:00
DeviceGuru writes "Researchers at the Biorob lab at Switzerland's École Polytechnique Fédérale de Lausanne (EPFL), have announced a cat-like robot that is claimed to be the fastest quadruped robot under 30 kilograms. The Cheetah-cub Robot, which runs real-time Xenomai Linux on an x86-based RoBoard robot control board, mimics the biomechanics of a cat to increase the speed and stability of it quadroped legs, helping it achieve speeds of 1.42m/s. The goal of the still-early-stage project is to encourage research in biomechanics, with an aim toward building faster robots for search and rescue, or ground exploration. More info is available on EPFL's Cheetah page."
Read more of this story at Slashdot.
Revisiting Amdahl's Law
Wed, 19 Jun 2013 06:15:00
An anonymous reader writes "A German computer scientist is taking a fresh look at the 46-year old Amdahl's law, which took a first look at limitations in parallel computing with respect to serial computing. The fresh look considers software development models as a way to overcome parallel computing limitations. 'DEEP keeps the code parts of a simulation that can only be parallelized up to a concurrency of p = L on a Cluster Computer equipped with fast general purpose processors. The highly parallelizable parts of the simulation are run on a massively parallel Booster-system with a concurrency of p = H, H >> L. The booster is equipped with many-core Xeon Phi processors and connected by a 3D-torus network of sub-microsecond latency based on EXTOLL technology. The DEEP system software allows to dynamically distribute the tasks to the most appropriate parts of the hardware in order to achieve highest computational efficiency.' Amdahl's law has been revisited many times, most notably by John Gustafson."
Read more of this story at Slashdot.
Altering Text In eBooks To Track Pirates
Wed, 19 Jun 2013 04:11:00
wwphx writes "According to Wired, 'German researchers have created a new DRM feature that changes the text and punctuation of an e-book ever so slightly. Called SiDiM, which Google translates to 'secure documents by individual marking,' the changes are unique to each e-book sold. These alterations serve as a digital watermark that can be used to track books that have had any other DRM layers stripped out of them before being shared online. The researchers are hoping the new DRM feature will curb digital piracy by simply making consumers paranoid that they'll be caught if they share an e-book illicitly.' I seem to recall reading about this in Tom Clancy's Patriot Games, when Jack Ryan used this technique to identify someone who was leaking secret documents. It would be so very difficult for someone to write a little program that, when stripping the DRM, randomized a couple of pieces of punctuation to break the hash that the vendor is storing along with the sales record of the individual book."
Read more of this story at Slashdot.
NVIDIA To License Its GPU Tech
Wed, 19 Jun 2013 02:10:00
An anonymous reader writes "Today in a blog post, NVIDIA's General Counsel, David Shannon, announced that the company will begin licensing its GPU cores and patent portfolio to device makers. '[I]t's not practical to build silicon or systems to address every part of the expanding market. Adopting a new business approach will allow us to address the universe of devices.' He cites the 'explosion of Android devices' as one of the prime reasons for this decision. 'This opportunity simply didn't exist several years ago because there was really just one computing device – the PC. But the swirling universe of new computing devices provides new opportunities to license our GPU core or visual computing portfolio.' Shannon points out that NVIDIA did something similar with the CPU core used in the PlayStation 3, which was licensed to Sony. But mobile seems to be the big opportunity now: 'We'll start by licensing the GPU core based on the NVIDIA Kepler architecture, the world's most advanced, most efficient GPU. Its DX11, OpenGL 4.3, and GPGPU capabilities, along with vastly superior performance and efficiency, create a new class of licensable GPU cores. Through our efforts designing Tegra into mobile devices, we've gained valuable experience designing for the smallest power envelopes. As a result, Kepler can operate in a half-watt power envelope, making it scalable from smartphones to supercomputers.'"
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;
}
?>

