Open-source News

The Network Evolves: ONE Summit Presents Collaborative and Transformative Program Across Networking, Edge, IoT

The Linux Foundation - Thu, 09/01/2022 - 00:00
  • Industry experts will share their knowledge across 5G, factory floor, agriculture, government, Smart Home, and Robotics use cases
  • Speakers from  50+ companies, 20 end users, 16 countries during ONE Summit 
  • Industry experts across the expanding open networking and edge ecosystems confirmed to present insights during ONE Summit North America, November 15-16, in Seattle, WA

SAN FRANCISCO, August 31, 2022 LF Networking, the facilitator of collaboration and operational excellence across open source networking projects, announced the ONE Summit North America 2022 session schedule is now available. Taking place in Seattle, WA November 15-16, ONE Summit is the one  industry event that brings together decision makers and implementers for two days of in-depth presentations and interactive conversations around 5G, Access, Edge, Telco, Cloud, Enterprise Networking, and more open source technology developments. 

“LF Networking is proud to set a high bar with the quality of content submissions for this year’s ONE Summit, and to offer an innovative line-up of diverse sessions,” said Arpit Joshipura, General Manager, Networking, Edge, and IoT, the Linux Foundation. “We will also touch on gaming, robotics, 5G network automation, factory floor, agriculture and more, with a strong program based on the power of connectivity.” 

The event will feature an extensive program of 70+ diverse business and technical sessions that cover cutting-edge topics across five presentation tracks: Industry 4.0; Security; The New Networking Stack; Operational Deployments (case studies, success & challenges); and Emerging Technologies and Business Models. 

Conference Session Highlights:

ONE Summit returns in-person for the first time in two years in its best format ever! The use-case driven content is strong in breadth and depth and includes sessions from open source users with whom LF Networking is engaged for the first time. Attendees will have a choose your own adventure experience as they select from a variety of content formats from interactive sessions, panels, in-depth tutorials, to lightning talk sessions with quick glances of future- looking thought processes. 

  • Real-world deployment stories of open source in action, from:
    • leading telco and enterprise organizations including TELUS, Google,  Deutsche Telekom, Red Hat, Verizon, Nokia, China Mobile, Equinix, Netgate, Pantheon and others. 
    • government and academic institutions including DARPA, the Naval Information Warfare Center (NWIC), UK Government, University of Southern California, Jeju National University, Georgia Tech, and others. 
  • Use case examples across the Metaverse, Robotics, Smart Home, Digital Twins, 5G Automation, Edge Orchestration, AI/ML, Kubernetes Orchestration, and more. 
  • Hands-on experiential learning and technical deep-dives in IoT and edge deployments led by expert practitioners.
  • Lightning talks offer the opportunity to quickly learn about security and emerging technologies.
  • Sessions contributing insight into open source projects across the ecosystem, including Akraino, CAMARA, eBPF, EdgeX Foundry, EVE, Nephio, OAI, OIF, ONAP, OpenSSF, ORAN-SC, SONiC, and more.

Registration

ONE Summit attendees engage directly with thought leaders across 5G, Cloud Native and Network Edge and expand knowledge of open source networking technology progression. Register today to gain fresh insights on technical and business collaboration shaping the future of networking, edge, and cloud computing.

Corporate registration is offered at the early price of US$995 through Sept. 9. Day passes are available for US$675 and Individual/Hobbyist (US$350) and  Academic/Student (US$100) passes are also available. Members of The Linux Foundation, LF Networking, and  LF Edge receive a 20 percent discount off registration and can contact events@linuxfoundation.org to request a member discount code. Members of the press who would like to request a press pass to attend should contact pr@lfnetworking.org

To register, visit  https://events.linuxfoundation.org/one-summit-north-america/register/. Corporate attendees should register before September 9, 2022 for the best rates. 

Developer & Testing Forum

ONE Summit will be followed by a complimentary, two-day LF Networking Developer and Testing Forum (DTF), a grassroots hands-on event organized by the LF Networking projects. ONE Summit attendees are encouraged to extend the experience, roll up sleeves, and join the incredible developer community to advance the open source networking and automation technologies of the future. Session videos from the Spring 2022 LFN Developer & Testing Forum, which took place June 13-16 in Porto, Portugal, are available here.

Sponsors

ONE Summit  is made possible thanks to generous sponsors, including: Diamond sponsor Dell Technologies; Gold sponsor kyndryl; Silver sponsor Futurewei Technologies; and Bronze sponsors Data Bank and Netris.ai. 

For information on becoming an event sponsor, click here or email for more information and to speak to the team.

About the Linux Foundation

Founded in 2000, the Linux Foundation is supported by more than 2,000 members and is the world’s leading home for collaboration on open source software, open standards, open data, and open hardware. Linux Foundation’s projects are critical to the world’s infrastructure including Linux, Kubernetes, Node.js, and more. Learn more at linuxfoundation.org.


The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see its trademark usage page: www.linuxfoundation.org/trademark-usage. Linux is a registered trademark of Linus Torvalds. ###

The post The Network Evolves: ONE Summit Presents Collaborative and Transformative Program Across Networking, Edge, IoT appeared first on Linux Foundation.

Genode OS Framework 22.08 With Improvements For Mobile Phone OS Ambitions

Phoronix - Wed, 08/31/2022 - 20:57
Genode OS as the open-source operating system framework based on a micro-kernel abstraction layer and a set of user-space components is out with its newest feature release. A big focus this cycle has been on making Genode OS more practical as a smartphone operating system...

MGLRU Linux Performance Looking Very Good For OpenWrt Router Use

Phoronix - Wed, 08/31/2022 - 18:40
For those running the embedded OpenWrt Linux operating system for routers and other networking devices or just running a memory-constrained MIPS Linux system, the forthcoming Multi-Gen LRU "MGLRU" kernel feature is looking very good on that front...

QEMU 7.1 Released With LoongArch Support, Zero-Copy-Send Migration

Phoronix - Wed, 08/31/2022 - 18:21
QEMU 7.1 is now available as the latest feature release for this processor emulator that plays an important role in the open-source Linux virtualization stack...

Apache Talks Up More Than 333 Million OpenOffice Downloads

Phoronix - Wed, 08/31/2022 - 18:15
While Apache OpenOffice development is rather stagnate, many of the original OpenOffice.org developers left for LibreOffice long ago, and LibreOffice has been delivering far more modern features and functionality, people continue to download OpenOffice. This week the Apache Software Foundation is celebrating more than 333 million downloads of their open-source office suite...

NVIDIA Proprietary Driver Causes Last Minute Headache For Ubuntu 20.04.5 LTS

Phoronix - Wed, 08/31/2022 - 18:05
Earlier this month Ubuntu 22.04.1 LTS was delayed by one week due to an OEM install bug leading to broken Snaps support. Now with Ubuntu 20.04.5 LTS the Canonical developers are racing down to a last-minute rebuild of images over a NVIDIA proprietary driver issue...

Archinstall 2.5-rc1 For Easily Installing Arch Linux

Phoronix - Wed, 08/31/2022 - 17:38
A new release of Archinstall, an easy-to-use, text-based Arch Linux installer, is on the way...

Make your own music tagging framework with Groovy

opensource.com - Wed, 08/31/2022 - 15:00
Make your own music tagging framework with Groovy Chris Hermansen Wed, 08/31/2022 - 03:00 1 reader likes this 1 reader likes this

In this series, I'm developing several scripts to help in cleaning up my music collection. In the last article I wrote and tested a Groovy script to clean up the motley assembly of tag fields. In this article, I'll separate the framework I've been using into a separate class and then write a test program to exercise it.

Install Java and Groovy

Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed following the instructions on the Groovy homepage. A nice alternative for Linux users is SDKMan, which can be used to get multiple versions of Java, Groovy and many other related tools. For this article, I'm using SDK's releases of:

  • Java: version 11.0.12-open of OpenJDK 11;
  • Groovy: version 3.0.8.
Back to the problem

If you haven't read parts 1-5 of this series, do that now so you understand the intended structure of my music directory, the framework created in that article and how we pick up FLAC, MP3 and OGG files.

The framework class

As I have mentioned a number of times, because of the music directory structure, we have a standard framework to read the artist subdirectories, the album sub-subdirectories, the music, and other files contained within. Rather than copying that code into each script, you should create a Groovy class that encapsulates the general framework behavior and delegates the application-specific behavior to scripts that call it.

More on Java What is enterprise Java programming? Red Hat build of OpenJDK Java cheat sheet Free online course: Developing cloud-native applications with microservices Fresh Java articles

Here's the framework, moved into a Groovy class:

 1    public class TagAnalyzerFramework {
   
 2        // called before any data is processed
 3        Closure atBeginning
   
 4        // called for each file to be processed
 5        Closure onEachLine
   
 6        // called after all data is processed
 7        Closure atEnd
   
 8        // the full path name to the music library
 9        String musicLibraryDirName
   
10        public void processMusicLibrary() {
11            // Before we start processing...
12            atBeginning()
13            // Iterate over each dir in music library
14            // These are assumed to be artist directories
 
15            new File(musicLibraryDirName).eachDir { artistDir ->
   
16                // Iterate over each dir in artist dir
17                // These are assumed to be album directories
18                artistDir.eachDir { albumDir ->
19                    // Iterate over each file in the album directory
20                    // These are assumed to be content or related
21                    // (cover.jpg, PDFs with liner notes etc)
22                    albumDir.eachFile { contentFile ->
   
23                        // Then on each line...
24                        onEachLine(artistDir, albumDir, contentFile)
25                    }
26                }
27            }
28            // And before we finish...
29            atEnd()
30        }
31    }

Line 1 introduces the public class name.

Lines 2-7 declare the three closures that the application script uses to define the specifics of the processing needed. This is called delegation of behavior.

Lines 8-9 declare the string holding the music directory file name.

Lines 10-30 declare the method that actually handles the processing.

Line 12 calls the Closure that is run before any data is processed.

Lines 15-27 loop over the artist/album/content file structure.

Line 24 calls the Closure that processes each content file.

Line 29 calls the Closure that is run after all data is processed.

I want to compile this class before I use it, as follows:

$ groovyc TagAnalyzerFramework.groovy$

That's it for the framework.

Using the framework in a script

Here's a simple script that prints out a bar-separated value listing of all the files in the music directory:

 1  int fileCount
 
 2  def myTagAnalyzer = new TagAnalyzerFramework()
 
 3  myTagAnalyzer.atBeginning = {
 4      // Print the CSV file header and initialize the file counter
 5      println "artistDir|albumDir|contentFile"
 6      fileCount = 0
 7  }
 
 8  myTagAnalyzer.onEachLine = { artistDir, albumDir, contentFile ->
 9      // Print the line for this file
10      println "$artistDir.name|$albumDir.name|$contentFile.name"
11      fileCount++
12  }
 
13  myTagAnalyzer.atEnd = {
14      // Print the file counter value
15      System.err.println "fileCount $fileCount"
16  }
 
17  myTagAnalyzer.musicLibraryDirName = '/home/clh/Test/Music'
 
18  myTagAnalyzer.processMusicLibrary()

Line 1 defines a local variable, fileCount, used to count the number of content files. Note that this variable doesn't need to be final.

Line 2 calls the constructor for the TagAnalyzerFramework class.

Line 3 does what looks like a mistake in Java. It appears to refer to a field in a foreign class. However, in Groovy this is actually calling a setter on that field, so it's acceptable, as long as the implementing class "remembers" that it has a contract to supply a setter for this property.

Lines 3-7 create a Closure that prints the bar-separated value header and initialize the fileCount variable.

Lines 8-12 similarly define the Closure that handles the logic for processing each line. In this case,it is simply printing the artist, album and content file names. If I refer back to line 24 of TagAnalyzerFramework, I see that it calls this Closure with three arguments corresponding to the parameters shown here.

Lines 13-16 define the Closure that wraps up the processing once all the data is read. In this case, it prints a count of files to standard error.

Line 17 sets the music library directory name.

And line 18 calls the method to process the music library.

Run the script:

$ groovy MyTagAnalyzer.groovy
artistDir|albumDir|contentFile
Bombino|Azel|07_Igmayagh_Dum_1.6.16.mp3
Bombino|Azel|08_Ashuhada_1.6.16.mp3
Bombino|Azel|04_Tamiditine_Tarhanam_1.6.16.mp3
Bombino|Azel|10_Naqqim_Dagh_Timshar_1.6.16.mp3
[...]
St Germain|Tourist|04_-_St Germain_-_Land Of....flac
fileCount 55
$

Of course the .class files created by compiling the framework class must be on the classpath for this to work. Naturally, I could use jar to package up those class files.

Those who are made queasy by what looks like setting fields in a foreign class could define local instances of closures and pass those as parameters, either to the constructor or processMusicLibrary(), and achieve the same effect.

I could go back to the code samples provided in the earlier articles to retrofit this framework class. I'll leave that exercise to the reader.

Delegation of behavior

To me, the coolest thing happening here is the delegation of behavior, which requires various shenanigans in other languages. For many years, Java required anonymous classes and quite a bit of extra code. Lambdas have gone a long way to fixing this, but they still cannot refer to non-final variables outside their scope.

That's it for this series on using Groovy to manage the tags in my music library. There will be more Groovy articles in the future.

I'll separate the framework I've been using into a separate class and then write a test program to exercise it.

Image by:

Opensource.com

Java Audio and music What to read next How I analyze my music directory with Groovy My favorite open source library for analyzing music files How I use Groovy to analyze album art in my music directory Clean up unwanted files in your music directory using Groovy Clean up music tags with a Groovy script This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. Register or Login to post a comment.

Pages