it

Polariton condensates show their nonequilibrium side

-- Delivered by Feed43 service




it

Palit GeForce RTX 2080 Super Gaming Pro OC

Palit's RTX 2080 Super Gaming Pro OC is a new variant with a triple-slot, triple-fan cooler, to replace their dual-fan designs. It delivers solid temperatures and noise levels. At $720, the card is priced very reasonably, yet includes a factory overclock, idle-fan-stop, and backplate.... [PCSTATS]




it

Millitronic HIVE Wireless Docking Kit

Wireless AD networks came and went without as much as a buzz in the consumer space, and yet there is more here to see before completely dismissing it. Millitronic certainly agrees, with their HIVE wireless docking station able to connect a laptop to an external display wirelessly at low latency, while adding some more tricks on top.... [PCSTATS]




it

AMD 5nm Zen 4 EPYC CPUs And Radeon Instinct GPUs To Power El Capitan Supercomput

AMD just announced today a design win in conjunction with the Lawrence Livermore National Laboratory (LLNL) and Hewlett-Packard Enterprise (HPE), win which it will be providing the hardware powering the El Capitan exascale-class supercomputer. What caught our eye about this announcement was not the compute performance -- which will be enormous ... [PCSTATS]




it

CalDigit USB-C Pro Dock Review

Is the USB-C Pro Dock from CalDigit the best bang for your buck? Join us as we investigate in our review."... [PCSTATS]




it

OWC Mercury Elite Pro Dock Review

OWC channels the Mercury Elite lineup with the Elite Pro to offer its storage driven dock solution. Here's our review."... [PCSTATS]



  • Hard Drives/SSD

it

Corsair Scimitar RGB Elite Optical Mouse Review

The Corsair Scimitar RGB Elite is a mouse that offers plenty of buttons, turns heads with its MMO and MOBA gaming performance, and excellent build quality.... [PCSTATS]




it

ASUS ROG Zenith II Extreme Alpha (TRX40) Motherboard Review

The rewards for offering a high-performance flagship motherboard on the TRX40 platform are clear. Vendors are all competing at price points well above �600 which culminates in motherboard options filled to the brim with the features that almost anybody could wish for. ASUS� ROG Zenith II Extreme was no exception to that point. However, ASUS has tak... [PCSTATS]




it

ASRock X570 Phantom Gaming-ITX/TB3 Motherboard Review

"When it comes to mini-ITX AMD X570 motherboards there are only a handful to choose from. Today we are checking out ASRock�s offering which comes in the form of the X570 Phantom Gaming-ITX/TB3. We first saw the Phantom Gaming Series from ASRock with their Z390 Phantom Gaming X and we are hoping to see the same quality in the X570 Phantom Gaming-ITX... [PCSTATS]




it

Best Budget Gaming Monitors 2020

If you're tight on cash but want a really good monitor, this is the article for you. For putting together this buying guide we narrowed down our options to displays that give you the best experience for the lowest possible price.... [PCSTATS]




it

15+ Titles Every PC Gamer Should Own

There are thousands upon thousands of PC games out there, and hundreds of good ones. However, some have stood out over the years, and cemented themselves as absolute must-haves in their respective genres. These are 15 titles we feel every PC gamer should have in their digital library.... [PCSTATS]




it

Should Feed Readers Count Unread Items?

Brent Simmons, the developer of the NetNewsWire RSS reader, is questioning his decision to put an unread count next to each feed, reasoning that it encourages people to be too obsessive about reading every item:

Instead of a dozen bookmarks, people had a hundred feeds. Or two hundred. Or two thousand.

And there was a tyranny behind keeping track of unread items and showing an unread count. People reacted in different ways, but many people felt like they always had to go through everything.

Including me. To this day.

I did not know this was going to happen. That was not the idea: it was a side effect of reasonable (at the time) choices.

I like seeing these counts on feeds where I need to read all items that are posted, but that's only a small percentage of the 100-120 feeds I follow. It would be nice to turn that off for others I read more casually.

Feedly presents unread counts on each feed and folder of feeds. There's a Mark As Read button to clear a count, but when you click it, the confirmation dialog acts like it's an extremely consequential decision: "Are you sure you want to mark this entire source as read? This operation cannot be undone."

I've posed a question on the RSS-Public mailing list: Do you think feed readers should count unread items?




it

How to Read an RSS Feed with PHP Using SimplePie

If you need to load an RSS feed with the PHP programming language, the open source library SimplePie greatly simplifies the process of pulling in items from a feed to present on a website, store in a database or do something else coooool with the data. There's a full installation guide for SimplePie but you can skip it with just three steps:

  1. Download SimplePie 1.5.
  2. Copy the file autoloader.php and the folder library to a folder that's accessible from your PHP code.
  3. Make note of this folder; you'll be using require_once() to load autoloader.php from that location.

SimplePie has been designed to work the same regardless a feed's format. It supports RSS 2.0, RSS 1.0, Atom and the earlier versions of RSS. Additionally it can read feed elements from nine namespaces.

Here's PHP code that loads feed items from the news site Techdirt and displays them in HTML:

// load the SimplePie library
require_once('/var/www/libraries/simplepie-1.5/autoloader.php');

// load the feed
$feed = new SimplePie();
$feed->set_feed_url('https://www.techdirt.com/feed/');
$feed->init();
$feed->handle_content_type();

// create the output
$html_output = '';
foreach ($feed->get_items() as $item) {
  $html_output .= '<p><a href="' . $item->get_link() . '">' . $item->get_title() . '</a></p>';
  $html_output .= $item->get_description();
  $html_output .= '<p>By ' . $item->get_author(0)->get_name() . ', ' . $item->get_date();
}

// display the output
ECHO <<<END
$html_output
END;

The API documentation for SimplePie_Item lists the functions that can extract data from each feed item. The versatility of the library is demonstrated by get_authors(), which can retrieve an item's authorship information whether it was in the RSS author element, Dublin Core creator, iTunes author, or Atom author.

SimplePie supports caching so that a feed isn't downloaded every time code is executed. The addition of these lines turns on caching, specifies the location of a cache folder and sets the time to use a cached version to four hours (14,400 seconds):

$feed->set_cache_location('/var/www/cache/');
$feed->set_cache_duration(14400);
$feed->enable_cache();

SimplePie was created by RSS Advisory Board member Ryan Parman, Geoffrey Sneddon and Ryan McCue. The project is currently maintained on GitHub by Malcom Blaney.




it

How to Read an RSS Feed with Java Using XOM

There are a lot of libraries for processing XML data with Java that can be used to read RSS feeds. One of the best is the open source library XOM created by the computer book author Elliotte Rusty Harold.

As he wrote one of his 20 books about Java and XML, Harold got so frustrated with the available Java libraries for XML that he created his own. XOM, which stands for XML Object Model, was designed to be easy to learn while still being strict about XML, requiring documents that are well-formed and utilize namespaces in complete adherence to the specification. (At the RSS Advisory Board, talk of following a spec is our love language.)

XOM was introduced in 2002 and is currently up to version 1.3.9, though all versions have remained compatible since 1.0. To use XOM, download the class library in one of the packages available on the XOM homepage. You can avoid needing any further configuration by choosing one of the options that includes third-party JAR files in the download. This allows XOM to use an included SAX parser under the hood to process XML.

Here's Java code that loads items from The Guardian's RSS 2.0 feed containing articles by Ben Hammersley, displaying them as HTML output:

// create an XML builder and load the feed using a URL
Builder bob = new Builder();
Document doc = bob.build("https://www.theguardian.com/profile/benhammersley/rss");
// load the root element and channel
Element rss = doc.getRootElement();
Element channel = rss.getFirstChildElement("channel");
// load all items in the channel
Elements items = channel.getChildElements("item");
for (Element item : items) {
  // load elements of the item
  String title = item.getFirstChildElement("title").getValue();
  String author = item.getFirstChildElement("creator",
    "http://purl.org/dc/elements/1.1/").getValue();
  String description = item.getFirstChildElement("description").getValue();
  // display the output
  System.out.println(">h2>" + title + ">/h2>");
  System.out.println(">p>>b>By " + author + ">/b>>/p>");
  System.out.println(">p>" + description + ">/p>");

All of the classes used in this code are in the top-level package nu.xom, which has comprehensive JavaDoc describing their use. Like all Java code this is a little long-winded, but Harold's class names do a good job of explaining what they do. A Builder uses its build() method with a URL as the argument to load a feed into a Document over the web. There are also other build methods to load a feed from a file, reader, input stream, or string.

Elements can be retrieved by their names such as "title", "link" or "description". An element with only one child of a specific type can be retrieved using the getFirstChildElement() method with the name as the argument:

Element linkElement = item.getFirstChildElement("link");

An element containing multiple children of the same type uses getChildElements() instead:

Elements enclosures = item.getChildElements("enclosure");
if (enclosures.size() > 1) {
  System.out.println("I'm pretty sure an item should only include one enclosure");
}

If an element is in a namespace, there must be a second argument providing the namespace URI. Like many RSS feeds, the ones from The Guardian use a dc:creator element from Dublin Core to credit the item's author. That namespace has the URI "http://purl.org/dc/elements/1.1/".

If the element specified in getFirstChildElement() or getChild Elements() is not present, those methods return null. You may need to check for this when adapting the code to load other RSS feeds.

If the name Ben Hammersley sounds familiar, he coined the term "podcasting" in his February 2004 article for The Guardian about the new phenomenon of delivering audio files in RSS feeds.




it

Surprising Solidarity in the Fight for Clean Water and Justice on O’ahu

After a 2021 leak at the U.S. military’s Red Hill fuel storage facility poisoned thousands, activists, Native Hawaiians, and affected military families have become unlikely allies in the fight for accountability.




it

Does a Forest Have Rights? In Ecuador, It Does.

Journalist Peter Yeung explains how Los Cedros has remained protected for years thanks to Ecuador’s constitution extending rights to nature.





it

Political Violence Is Not Violence Against Politicians

Indigenous communities have long resisted the false narratives of imperialist nations and are experts at countering the political violence of white supremacy.




it

Why Protest Works—Even When It’s Unpopular

High-profile, disruptive protests can lead to increased polarization—but often still yield increased public support for the protest’s goals, even if the tactics are criticized.





it

Here’s How to Respond to Crime, Not React to It

A new ballot measure in California would reverse progress on reducing mass incarceration. Here's what our regular correspondent Dortell Williams has to say about it.






it

An Abolitionist Response to Project 2025

Project 2025, created by the extremist right-wing Heritage Foundation, fortifies the racist impact of policing by empowering the Department of Justice to focus on violent crime, despite the fact that














it

United Auto Workers’ Strike Yields Win for “Just Transition”

In bringing electric vehicle battery plants under its national contract, the UAW took a major step toward transitioning away from fossil fuels in a way that protects workers' rights.




it

Keeping Brazil’s Black History in Its Tech “Future”

Rio de Janeiro’s Port Zone was once the largest slave port in the Americas. As developers work to “revitalize” the area, Black activists are fighting to retain the remnants of the district’s historical significance.





it

Breaking Up With Capitalism

A paradigm shift for our economy begins when we name and see the anti-democratic bias that lies at the heart of our capital-centric system.






it

Meet the Mercaditas Fighting for Fairness in Mexico

Street selling is a risky activity in Mexico City. But the mercaditas movement aims to empower women and nonbinary sellers to protect themselves from economic exploitation.




it

Cultivating Dragon Fruit’s Political Power in Ecuador

Amid ongoing colonization, the Indigenous Shuar people are taking back control of their economic and political futures.







it

What’s in a Name? For Abortion Providers, Quite a Bit.

Even before abortion became illegal in 14 states, some reproductive health care clinics were rebranding to better reflect the broad spectrum of gender-inclusive care they provide.





it

Punjabi Californians Find a Lifeline Through Community Health Workers

Facing a health care system without sufficient translation services and a grueling economic landscape, Punjabi residents in Fresno, California, have created an organization to help meet their community’s unique needs.