si

SE Radio 603: Rishi Singh on Using GenAI for Test Code Generation

Rishi Singh, founder and CEO at Sapient.ai, speaks with SE radio’s Kanchan Shringi about using generative AI to help developers automate test code generation. They start by identifying key problems that developers are looking for in an automated test-generation solution. The discussion explores the capabilities and limitations of today’s large language models in achieving that goal, and then delves into how Sapient.ai has built wrappers around LLMs in an effort to improve the quality of the generated tests. Rishi also suggests how to validate the generated tests and outlines his vision of the future for this rapidly evolving area. Brought to you by IEEE Computer Society and IEEE Software magazine. This episode is sponsored by WorkOS.




si

SE Radio 611: Ines Montani on Natural Language Processing

Ines Montani, co-founder and CEO of Explosion, speaks with host Jeremy Jung about solving problems using natural language processing (NLP). They cover generative vs predictive tasks, creating a pipeline and breaking down problems, labeling examples for training, fine-tuning models, using LLMs to label data and build prototypes, and the spaCy NLP library.




si

SE Radio 620: Parker Selbert and Shannon Selbert on Robust Job Processing in Elixir

Shannon Selbert, co-founder of Soren and developer of Oban, and Parker Selbert, creator of the Oban background job framework, chief architect at dscout, and co-founder of Soren, speak with SE Radio host Gavin Henry about robust job processing in Elixir. They explore the reliability, consistency, and observability in relation to job processing, to understand how Oban, Elixir, and PostgreSQL deliver them.

The Selberts describe why Oban was created, its history, which parts of the Elixir ecosystem they use, and why this would not be possible without PostgreSQL and Elixir. They discuss the lessons learned in the 5 years since the first release, as well as use cases, job throughput, the hardest problem to solve so far, workers, queues, CRON, distributed architectures, retry algorithms, just-once methodologies, the reliability the beam brings, consistency across nodes, how PostgreSQL is vital, telemetry data, best use cases for Oban, and the most common issues that new users face. Brought to you by IEEE Computer Society and IEEE Software magazine.




si

SE Radio 624: Marcelo Trylesinski on FastAPI

Marcelo Trylesinski, a senior software engineer at Pydantic and a maintainer of open-source Python tools including Starlette and Uvicorn, joins host Gregory M. Kapfhammer to talk about FastAPI. Their conversation focuses on the design and implementation of FastAPI and how programmers can use it to create web-based APIs. They also explore how to create and deploy a FastAPI implemented in the Python programming language. Brought to you by IEEE Computer Society and IEEE Software magazine.




si

SE Radio 640: Jonathan Horvath on Physical Security

Jonathan Horvath of Z-bit discusses physical access control systems (PACS) with host Jeremy Jung. They start with an overview of PACS components and discuss the proprietary nature of the industry, the slow pace of migration to open standards, and why Windows is commonly used. Jonathan describes the security implications of moving from isolated networks to the cloud, as well as credential vulnerabilities, encryption using symmetric keys versus asymmetric keys, and the risks related to cloning credentials. They also consider several standards, including moving from Wiegand to the Open Supervised Device Protocol (OSDP), as well as the Public Key Open Credential (PKOC) standard, and the open source OSDP implementation that Jonathan authored.

Brought to you by IEEE Computer Society and IEEE Software magazine.




si

Polariton condensates show their nonequilibrium side

-- Delivered by Feed43 service




si

Professional societies and you

-- Delivered by Feed43 service




si

Physics Nobel nominees, 1901–70

-- Delivered by Feed43 service




si

MSI Radeon RX 5500 XT GAMING X Review

MSI puts its usual GAMING X and TWIN FROZR 7 magic on AMD's new mid-range Radeon RX 5500 XT. Check out our full review here."... [PCSTATS]




si

SteelSeries Apex 3 Water Resistant Gaming Keyboard Review

" Writing an entire article on the Apex 3 was a really easy task thanks to the higher actuation point and we did not make any mistakes like on the regular high-speed gaming-only keyboards. This is a good point to recommend when using the keyboard in corporate offices as well: the new SteelSeries domes are silent, while the full-size layout allows ... [PCSTATS]




si

Silicon Power P34A60 PCIe 3x4 M.2 2280 512GB SSD Review

" The mainstream PCIe Gen 3x4 P34A60 mainstream SSD from Silicon Power does offer good all-around performance and does not drop to very slow speeds when the cache fills up completely, as we could notice from the HD Tune Pro write test. When copying large files continuously to the drive, we haven�t seen drops of under 90MB/s, which is great for a TL... [PCSTATS]



  • Hard Drives/SSD

si

Lexar Professional SL100 Pro Portable SSD Review

External SSDs are the future when it comes to moving and storing large amounts of data. The Lexar SL100 Pro offers amazing speed and durability in sizes from 500GB up to 1TB.... [PCSTATS]



  • Hard Drives/SSD

si

SilverStone SETA A1 Case Review

"The current state of PC case design seems to be comprised of a few design and function features that can be found on just about any modern case. This includes tempered glass side panels, support for vertical video card orientation, and multiple fan and radiator installation options. These features are often mixed and matched, and depending on thei... [PCSTATS]




si

Gamerstorm Macube 310P Mid-Tower Chassis Review

"Gamerstorm's Macube 310P mid-tower computer case offers great value for money with just a few issues here and there."... [PCSTATS]




si

Raspberry Pi Enthusiast Creates Coronavirus Live Global Tracker Display

There are so many things that can be done with a little spare time and a Raspberry Pi that it boggles the mind; the little developer board can be made to do just about anything builders can dream up. One of the most recent projects we've seen using the Pi turned up on Reddit from a person called jul-bruegger who combined the Raspberry Pi Zero... [PCSTATS]




si

RIOTORO Aviator Classic Gaming Headset Review

Riotoro just released their very first 7.1 virtual surround sound gaming headset called the Aviator Classic and today it�s up to us to put it to the test. ... [PCSTATS]




si

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.




si

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.




si

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.




si

A Progress 2025 Vision for Climate Justice

As Hurricanes Helene and Milton devastate the Southeastern U.S., Antonia Juhasz articulates a just vision for how to fix our climate.




si

Can Massive Election Turnout Save Democracy?

An extremely tight race for the presidency is sparking a last-minute, Black-led GOTV effort aimed at Black voters in swing states.




si

Inside Trump’s Madison Square Garden Rally

Investigative journalist Arun Gupta offers an eyewitness account of the hate—and sense of belonging—on display at Donald Trump’s New York City rally.





si

Progress 2025: A Vision for LGBTQ Rights

The Heritage Foundation’s Project 2025 has promised a dystopian vision for LGBTQ rights. Its ideas are consistent with authoritarian, Christian nationalist, and white supremacist objectives. It aims to criminalize the existence





si

A Progress 2025 Vision of Self-Determination

Project 2025, created by the extremist right-wing Heritage Foundation, takes a colonialist position on U.S. influence at home and abroad. Its authors argue that too much public land is not




si

Dr. Ibram X Kendi’s Progress 2025 Vision for Education

In the face of Project 2025’s dystopian vision for education, Ibram X Kendi lays out a progressive alternative for public education in the U.S.










si

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.





si

New York Considers a Social Housing Bill

Social housing as a concept is gaining popularity. Now, the state of New York is considering a bill to make it a reality.





si

Progress 2025: A Vision for Economic Justice

A progressive alternative to Project 2025’s anti-tax, anti-worker economy includes worker protections and a strong social safety net.




si

Undoing What Wall Street Did to the Housing Market

Billionaires have long leveraged the housing market for money. But a new report outlines how to regulate the market so people—not hedge funds—can buy homes.




si

Swiss Schools’ Surprising Solution to Bullying

Switzerland’s “No Blame” approach eschews punishment, instead focusing on empathy, tolerance, and respect.




si

Going Back Outside for Pride

We can no longer accept Pride events that only make room for one type of queer person—or that cater primarily to the corporations more invested in rainbow capitalism than collective liberation.





si

A Progress 2025 Vision for Health Care

Instead of gutting Medicare and Medicaid, as Project 2025 envisions, here's what a holistic, collective approach to health care would look like.




si

A Liberatory Vision for Reproductive Justice

A progressive alternative to Project 2025's anti-abortion vision includes no-cost abortions, on-demand, for everyone who wants one.





si

Raw Milk Institute | The voice of responsible leadership for the growing raw milk market.

I've contributed... won't you?




si

Kids in a cost of living crisis: A Newsround Special

Newsround has been finding out how the cost of living crisis and rising prices have affected children living in the UK.




si

What's it like going on a residential?

Press Packer Sienna tells us all about her residential experience and her top tips for making the most of it.




si

Government plans to ban smoking outside schools and playgrounds

The government has announced plans to make it illegal to smoke outside schools and hospitals, and in children's playgrounds in England. They have also said that some outdoor places could become vape-free.




si

What plans can we expect from Donald Trump as president?

Mr Trump will announce his wider plans for his government in due course, but here are some of the big issues he talked about during the election campaign.