ow

Episode 373: Joel Spolsky on Startups Growth, and Valuation

Joel Spolsky on founding Stack Overflow, “land grabs” vs. “bootstrapping with profitability”, raising more money using “proof points”, what developers and companies get massively wrong, choosing your next job, and how to ask and answer on Stack Over




ow

Episode 377: Heidi Howard on Distributed Consensus

Heidi Howard, a researcher in the field of distributed systems, discusses distributed consensus. Heidi explains when we need it, when we don't need and the algorithms we use to achieve it.




ow

Episode 386: Building Low Latency Applications with WebRTC

WebRTC provides real time video and audio streaming capabilities to applications. Spencer Dixon explains the different parts of WebRTC and how they used it to build a pair programming application.




ow

Episode 391: Jeremy Howard on Deep Learning and fast.ai

Jeremy Howard from fast.ai explains deep learning from concept to implementation. Thanks to transfer learning, individuals and small organizations can get state-of-the-art results on machine learning problems using the open source fastai library...




ow

Episode 407: Juval Lowy on Righting Software

Juval Löwy, Software Legend and Founder of IDesign discusses his recently published book, Righting Software, with host Jeff Doolittle. This episode focuses on Löwy’s belief that the software industry is in a deep crisis, evident from the numerous...




ow

Episode 424: Sean Knapp on Dataflow Pipeline Automation

Sean Knapp of Ascend.io talks to Robert Blume about data pipeline automation with an orchestration layer.




ow

Episode 438: Andy Powell on Lessons Learned from a Major Cyber Attack

Andy Powell is the CISO of AP Moller Maersk and discusses the 2017 cyber attack that hit the company and the lessons learned for preventing and recovering from future attacks.




ow

Episode 442: Arin Bhowmick on UX Design for Enterprise Applications

Arin Bhowmick, Global Vice President and Chief Design Officer at IBM, discusses why and how UX design for enterprise applications is different than for consumer applications.




ow

Episode 448: Matt Arbesfeld Starting Your Own Software Company

Matt Arbesfeld, cofounder of LogRocket, discusses the benefits and drawbacks of starting a software company as a software engineer, including finding cofounders, fundraising, and determining what ideas are worth pursuing.




ow

Episode 451: Luke Kysow on Service Mesh

Luke Kysow from Hashicorp does a deep dive into the key features of Consul with host Priyanka Raghavan.




ow

Episode 464: Rowland Savage on Getting Acquired

Rowland Savage, author of How to Stick the Landing: The M&A Handbook for Startups, discusses how company acquisitions work, the three types, and why it is so important for software engineering startups to know the details to make an acquisition happen.




ow

Episode 465: Kevlin Henney and Trisha Gee on 97 Things Every Java Programmer Should Know

Trisha Gee and Kevlin Henney of 97 things every Java developer should know discusses their book, which is a collection of essays by different developers covering the most important things to know. Host Felienne spoke withGee and Henney about all things...




ow

Episode 485: Howard Chu on B+tree Data Structure in Depth

Howard Chu, CTO of Symas Corp and chief architect of the OpenLDAP project, discusses the key features of B+Tree Data Structures which make it the default selection for efficient and predictable storage of sorted data.




ow

Episode 510: Deepthi Sigireddi on How Vitess Scales MySQL

In this episode, Deepthi Sigireddi of the Cloud Native Computing Foundation (CNCF) spoke with SE Radio host Nikhil Krishna about how Vitess scales MySQL. They discuss the design and architecture of the product; how Vitess impacts modern data problems;...




ow

Episode 514: Vandana Verma on the Owasp Top 10

Vandana Verma, Security Leader at Snyk and vice-chairperson of the OWASP Global Board of directors, discusses the "OWASP top 10" with host Priyanka Raghavan. The discussion explores various subtopics such as the history behind OWASP, the OWASP top 10 security risks, example of common vulnerabilities and ends with information on top projects in OWASP and how can contribute to it.




ow

Episode 523: Jessi Ashdown and Uri Gilad on Data Governance

Jessi Ashdown and Uri Gilad, authors of the book "Data Governance: The Definitive Guide," discuss what data governance entails, why it's important, and how it can be implemented. Host Akshay Manchale speaks with them about why data governance...




ow

SE Radio 552: Matt Frisbie on Browser Extensions

Matt Frisbie, author of Building Browser Extensions, speaks with host Kanchan Shringi about browser extensions, including key areas where they've been successful. Based on Matt’s experience as a developer working for Google, Doordash, and a startup he founded, they examine tools for building extensions, as well as APIs they have access to. The conversation presents detailed issues such as cross-browser compatibilities to keep in mind when developing extensions and mechanisms in the browser to prevent security vulnerabilities, and finally examines how emerging platforms can help developers take advantage of exciting new possibilities with web extensions.




ow

SE Radio 568: Simon Bennetts on OWASP Dynamic Application Security Testing Tool ZAP

Simon Bennetts, a distinguished engineer at Jit, discusses one of the flagship projects of OWASP: the Zed Attack Proxy (ZAP) open source security testing tool. As ZAP’s primary maintainer, Simon traces the tool's origins and shares some anecdotes with SE Radio host Priyanka Raghavan on why there was a need for it. They take a deep dive into ZAP’s features and its ability to integrate with CI/CD, as well as shift security left. Bennetts also considers what it takes to build a successful open source project before spending time on ZAP’s ability to script to provide richer results. Finally, the conversation ends with some questions on ZAP’s future in this AI-powered world of bots.




ow

SE Radio 570: Stanisław Barzowski on the jsonnet Language

Stanisław Barzowski of XTX Markets and a committer on the jsonnet project joins SE Radio's Robert Blumen for a conversation about the jsonnet programming language. A superset of JSON, jsonnet adds programming language capabilities, particularly to address the need to handle large but mostly repetitive JSON configurations. They discuss the project’s history, use cases for Grafana and Kubernetes config, and interoperability with YAML. They examine jsonnet details, including the command line, constrained capabilities of the language, and objects and inheritance, and then consider the toolchain: compiler, formatter, and linter, as well as test frameworks and testing, package management, and the language’s performance. Barzowski describes four implementations -- go, C++, Rust, and Scala -- as well as popular libraries and the standard library.




ow

Polariton condensates show their nonequilibrium side

-- Delivered by Feed43 service




ow

Glow down

Become less attractive




ow

Dig down

Spend your own money




ow

Acer bracing for PC market slowdown

"With demand for notebooks continuing sliding, Acer is pushing to enhance its PC offerings, and remains aggressive in developing new businesses, according to company chairman Jason Chen.

For the PC business, Acer is now primarily focusing on improving its existing competitiveness and cooling technologies. The company earlier terminated its mo... [PCSTATS]




ow

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]




ow

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

ow

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

ow

Gryphon Tower Mesh WiFi System

Gryphon is a relatively new company aiming to challenge the establishment of consumer-grade networking. We check out the Gryphon Tower today, which aims to combine extensive network security features with excellent performance, mesh network compatibility, and ease of installation and monitoring!... [PCSTATS]




ow

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]




ow

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]




ow

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.




ow

Has the RSS Advisory Board Followed the Roadmap?

There has been recent discussion about the roadmap that was added to the RSS 2.0 specification in August 2002 announcing that there would be no new additions to RSS, freezing its set of elements and attributes forever and ever amen. The roadmap stated, "We anticipate possible 2.0.2 or 2.0.3 versions, etc. only for the purpose of clarifying the specification, not for adding new features to the format."

The RSS Advisory Board was formed 20 years ago to publish the specification and "make minor changes to the spec per the roadmap," as stated in the launch announcement on July 18, 2003.

If you're wondering whether the board has followed the roadmap, this timeline of RSS elements answers that question. There are 44 elements in RSS. This table shows when each element was introduced, the group that added it, and the version in which it first appeared.

There were 33 elements added to RSS by Netscape in 1999 and 11 by UserLand from 2000 to 2002. No elements have been added by the RSS Advisory Board.

ElementDate AddedPublisherVersion
channel03/1999NetscapeRSS 0.90
channel-description03/1999NetscapeRSS 0.90
channel-link03/1999NetscapeRSS 0.90
channel-title03/1999NetscapeRSS 0.90
channel-image03/1999NetscapeRSS 0.90
channel-image-link03/1999NetscapeRSS 0.90
channel-image-title03/1999NetscapeRSS 0.90
channel-image-url03/1999NetscapeRSS 0.90
channel-textInput03/1999NetscapeRSS 0.90
channel-textInput-description03/1999NetscapeRSS 0.90
channel-textInput-link03/1999NetscapeRSS 0.90
channel-textInput-name03/1999NetscapeRSS 0.90
channel-textInput-title03/1999NetscapeRSS 0.90
channel-item03/1999NetscapeRSS 0.90
channel-item-link03/1999NetscapeRSS 0.90
channel-item-title03/1999NetscapeRSS 0.90
rss07/1999NetscapeRSS 0.91
channel-copyright07/1999NetscapeRSS 0.91
channel-docs07/1999NetscapeRSS 0.91
channel-image-description07/1999NetscapeRSS 0.91
channel-image-height07/1999NetscapeRSS 0.91
channel-image-width07/1999NetscapeRSS 0.91
channel-language07/1999NetscapeRSS 0.91
channel-lastBuildDate07/1999NetscapeRSS 0.91
channel-managingEditor07/1999NetscapeRSS 0.91
channel-pubDate07/1999NetscapeRSS 0.91
channel-rating07/1999NetscapeRSS 0.91
channel-skipDays07/1999NetscapeRSS 0.91
channel-skipDays-day07/1999NetscapeRSS 0.91
channel-skipHours07/1999NetscapeRSS 0.91
channel-skipHours-hour07/1999NetscapeRSS 0.91
channel-webMaster07/1999NetscapeRSS 0.91
channel-item-description07/1999NetscapeRSS 0.91
channel-cloud12/2000UserLandRSS 0.92
channel-item-category12/2000UserLandRSS 0.92
channel-item-enclosure12/2000UserLandRSS 0.92
channel-item-source12/2000UserLandRSS 0.92
channel-category08/2002UserLandRSS 2.0
channel-generator08/2002UserLandRSS 2.0
channel-ttl08/2002UserLandRSS 2.0
channel-item-author08/2002UserLandRSS 2.0
channel-item-comments08/2002UserLandRSS 2.0
channel-item-guid08/2002UserLandRSS 2.0
channel-item-pubdate08/2002UserLandRSS 2.0

A few judgment calls had to be made compiling this list. The image and textInput elements were originally placed under the top-level element of the feed, but that is counted as their introduction even though they later moved inside channel. The rss element wasn't in the first version of RSS created by Netscape. Instead the top-level element was rdf:RDF until it was changed by Netscape to rss four months later.




ow

Downloading 50,000 Podcast Feeds to Analyze Their RSS

The software developer Niko Abeler has crawled 51,165 podcast feeds to study what RSS elements they contain. His comprehensive Podcast Feed Standard report looks at the usage of core RSS elements and namespace elements from Apple iTunes, Atom, Content, Podcast 2.0 and Simple Chapters. He writes:

In the world of podcasting, there is a great deal of freedom when it comes to the format and content of a podcast. Creators are free to choose their own audio format and feed content, giving them the flexibility to create something truly unique. However, when it comes to distributing a podcast, certain standards must be followed in order to be added to an aggregator such as Apple Podcasts. Additionally, the podcasting community has come to agree upon certain conventions that can be used to add additional features to a podcast, such as chapters, enhanced audio, and more. These conventions allow for a more immersive and engaging listening experience for the audience.

This website is dedicated to providing guidance and information on the conventions and standards used in podcasting.

There's a lot of interesting data in the RSS 2.0 report, which finds that these are the six least popular elements in an RSS feed's channel:

Element Usage
docs 8.3%
cloud 0.0%
rating 0.0%
skipDays 0.0%
skipHours 0.0%
textInput 0.0%

Over 99 percent of feeds contain the optional channel element language and the optional item elements enclosure, guid, pubDate and title. Only 0.2% of feeds contain a source element in an item.

The iTunes namespace report shows a lot of variation in support. The required element itunes:explicit is only present in 18 percent of feeds and four optional elements have less than 20 percent: itunes:new-feed-url, itunes:block, itunes:complete and itunes:title. One namespace in the report, Podcast 2.0, has been proposed by Podcastindex "to provide a solution for problems which previously have been solved by multiple competing standards" and is still under development.

The report also analyzes the audio files enclosed in the podcast feeds to determine their format, bitrate, channel and loudness. The report finds that 95.6 percent use MP3 and 4.4 percent AAC/M4A. People who like an alternative open source format will be oggravated that its sliver of the pie graph is so small it can't be seen.

If Abeler isn't tired of crunching numbers, one thing that would be useful for the RSS Advisory Board to learn is how many of the feeds contain more than one enclosure element within a single item.




ow

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.






ow

How to Defeat the Far-Right: Lessons From the French Left

Analyst Jean Bricmont offers a deep analysis of how France's left-leaning coalition swept a plurality of seats in the recent snap elections.




ow

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.








ow

Our Power Goes Beyond the Ballot Box

There’s no denying the terror of this moment. But we will get through it with a love-filled movement focused on safety, security, and stability.




ow

How to Defeat “Wealth Supremacy” and Build a Democratic Economy

Marjorie Kelly's new book critiques the U.S. economy's embrace of "wealth supremacy," and explores alternate models of democratic economies.







ow

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.




ow

Rooting for Black Land Ownership

Exploring the history of land theft in the U.S., Brea Baker argues that the Black reparations and Indigenous Landback movements are stronger together.




ow

How to End Childhood Poverty

Childhood poverty continues to plague the U.S., though simple solutions exist to address it. Will the next administration implement them?




ow

How Three Young Women of Color Took on Power

Journalist Sonali Kohli’s new book centers the life and work of three young women of color who refused to let powerful elites shape their lives and communities.