Tianhe-2 uses nothing but Intel processors. Moreover, both systems' operating system is Linux. Compilers on all Chinese supercomputers — the software that translates and optimizes human logic instructions into machine-readable format — all come from U.S.-invented GNU or Intel.
Victoria-based MSP Thomas Peer recently realised the value that the simplicity of Linux-based systems can bring through a backup-as-a-service deployment.
Lead engineer Chris Stone said he was “really impressed” by the time, effort and (above all) cost savings that were gained by using Linux VMs over Windows.
Based on Veeam, the deployment was across all of Event Hospitality & Entertainment’s hotels, which are dispersed across Australia and New Zealand.
At first, Stone explained, it was simply a cost-cutting exercise.
Old friends and new join us on a quest to celebrate four hundred episodes.
Special Guests: Alex Kretzschmar, Corry Clinton, Drew DeVore, and Graham Morrison.
While PipeWire is being increasingly looked at by desktop Linux distributions as the future of audio/video stream handling on the Linux desktop, aside from Fedora most Linux distributions are so far being cautious in replacing PulseAudio. In any event, PulseAudio is showing no signs of letting up and continues seeing new feature development.
The latest work to land on Monday for the PulseAudio sound server was mSBC codec support for its Bluetooth native headset backend. This mSBC codec support in turn allows for wideband speech to be supported for capable Bluetooth headsets interfacing with the Linux desktop by way of PulseAudio.
AMD last week published a security whitepaper on Zen 3's Predictive Store Forwarding (PSF) functionality introduced with Ryzen 5000 series and EPYC 7003 series processors. In the whitepaper they mentioned Linux patches were published for allowing this feature to be disabled if concerned about the security risk, well, today those patches were made public.
Hitting the Linux kernel mailing list today were the five patches for mitigating Predictive Store Forwarding if desired. With a patched kernel, PSF remains on by default but can be disabled via the Spectre V4 mitigation control or by setting the nopsfd kernel parameter boot option to just force off this feature. Again, this is only relevant for Zen 3 (and presumably future) CPUs.
Over the past two years we have seen a lot of Intel Linux kernel graphics driver work in preparing to support Intel discrete graphics cards. That work is still ongoing even for the DG1 graphics card that has been sampling to customers while Linux 5.13 will take things another step forward this summer.
Much of Intel's discrete GPU bring-up for Linux has been restructuring of their i915 kernel driver to handle device-local memory. Up to now with their exclusively integrated graphics focus their video memory handling has been much simpler and made assumptions about always using system RAM. But now with discrete GPUs and having dedicated video memory, over the past two years has been a lot of video memory code changes to their driver as part of their bring-up for DG1 and future discrete graphics processors.
This article will cover a few useful applications that can be used to monitor statistics about AMD GPUs installed in your Linux system. These applications will only work properly and show correct information if you are using open source AMD GPU drivers (typically called AMDGPU drivers). If you have an AMD GPU, most Linux distributions should install and enable open source drivers automatically during OS installation. Since the release of “RX” series GPUs, open source drivers for AMD cards have improved leaps and bounds and now have performance almost at par with proprietary drivers. You should prefer open source drivers for AMD GPUs unless you are facing some hiccups or exceptions.
HEIC or many people know it as HEIF, is an image format widely used to its tremendous benefits. However, this file format is not supported in many Linux machines, so it becomes hard to view these files on Linux OS.
In case you have a Linux system and want to view HEIC files, then read the article below that mentions multiple procedures to open a HEIC file on the Linux machines without any trouble. Apart from it, you will get to know about the essential aspects of HEIC files.
The web is graphical; you cry from old habits. This is just what most sites have been made up to be. We all know that it starts with a documentation format called HTML! With the way websites work nowadays, we may believe that it is all images and video and incredible animations, not to mention cats. This means significant, complicated web browsers to find even the tiniest scrap of information. Your favourite browser carries a heavyweight on your system, and you have to be online to read it. But it does not have to be like this.
Why Command-Line?
The truth is slightly different; much of the information on a web page, even YouTube, is text-based. You can use this to find and filter data to suit your needs. On top of that, if you want to avoid tracking, it could be good to consider the offline reading of many webpages. Another reason is to collect information for scraping projects. Scraping a web page means finding the information you need with software, usually machine learning, to conclude. If you need help with a programming problem, those sites are made to work with text-based browsers, so if you need them, you can stay on the command-line.
Technology is continuously evolving. There are regular changes in platforms running syslog-ng: old technologies disappear, and new technologies are introduced. While we try to provide stability and continuity to our users, we also need to adapt. Python 2 reached its end of life a year ago, CentOS 6 in November 2020. Using Java-based drivers has been problematic for many, so they were mostly replaced with native implementations.
From this blog you can learn about recent changes affecting syslog-ng development and packaging.
In your journey to discovering the Linux terminal in chromeOS, it is essential that you put the basics to rest for a well-rounded experience as you proceed. I’ll do my best to make the case scenario where these tools really shine in my overview below. Consider this a continuation of our Linux series and connect with Chromies by signing up
In my last blogpost, I introduced the buildlog consultant - a tool that can identify many reasons why a Debian build failed.
For example, here’s a fragment of a build log where the Build-Depends lack python3-setuptools:
In this tutorial, we will show you how to install Jellyfin on CentOS 8. For those of you who didn’t know, Jellyfin is an open-source media streaming tool that allows you to build your own home media systems, such as your personal Netflix or Plex. With Jellyfin you organize your media content (book, movies, music, etc.) and stream to any device from your own server, with no strings attached. Jellyfin supports GNU/Linux, macOS, and Microsoft Windows operating systems.
This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you through the step-by-step installation of the Jellyfin open-source media stream on a CentOS 8.
Are you reaching maximum usage of your swap memory?
Stuck?
How to see swap memory in your Linux system?
You just landed at the right place to get unstuck. I am going to discuss some better and perfect new ways of observing swap memory for you. I’m using Lubuntu 20.04 to demonstrate all these processes. Lubuntu is a lightweight distro and runs effectively on most of the hardware.
Let’s begin.
The “df” is a standard command in Linux, and Unix-like systems termed “Disk Filesystem.” It is used to display consumed and available disk space for the specific file system. Whenever you run this Linux command-line utility, it displays the amount of used and available blocks, total disk space, and a summary of where the file system is mounted.
In short, the dubbed “df” command is a helpful tool to get disk space information having file name arguments.
While using Linux distributions, some of the data needs to be displayed in columnar format. Linux system makes it easy to display content in columns using the “column” command. The “column” command is a simple command-line utility to print the file contents in columns. This command-line tool supports multiple options containing proper functionality that are worth considering.
When using the “column” command in a terminal, it ignores blank lines by default.
If we have data displayed in multiple columns, the command will start to display the data from the left side to the right side i-e; it will begin to add content in the left column first and then move towards the right columns.
The “hwclock” is a command-line utility for both Linux and Unix-like operating systems to access Hardware Clock. It is also termed as Real-Time Clock (RTS) or BIOS clock. The Hardware Clock is quite different from the clock that is managed by the Linux kernel. It runs when the system is running, and it even remains active when the machine is turned off as it is independent of the operating system you are using.
In various situations, we need to access other desktops or share our desktops with other people. Accessing someone else’s desktop or sharing our desktop with others over the internet is remote desktop sharing. For instance, if you need to troubleshoot someone’s computer or work in a group, then the work can be done smoothly by sharing the desktop. TeamViewer is a popular and multi-platform desktop sharing application.
In this article, we will install TeamViewer and share the Linux Mint 20 desktop with other computers.
There are multiple files available on the internet which are downloadable for Linux but compressed as a tar file. Tar files store different files and squeeze them to keep the space and bandwidth in the downloading procedure.
These tar files work like a portable container to store various files, and it is also known as a tarball. However, many people can’t find out how to open a tar file in Linux, so you also want to learn how to open tar files and then read our article. This article will cover complete information on how to open tar files in Linux without facing errors.
Kdenlive is a free, open-source, and multi-platform video editor. It can support MP4, MKV, and my other formats. Using Kdenlive, you can add effects and transitions to your video. Moreover, it also allows us to render the video in any format.
We can install Kdenlive on Linux Mint 20 through the Software Manager utility, PPA repository, and snap application manager.
The GNU compiler collection, which is the abbreviation for GCC, contains multiple compilers for various languages like C, C++, Go, etc. Using GCC, you can easily compile your programs on Linux Mint. Many open-source projects, including Linux Kernel, are compiled using the GCC compiler.
The build-essential package contains the GCC compiler, debugger, and many additional development tools. By installing the build-essential package, we can use GCC compiler on Linux Mint.
A GPU or graphic card is becoming essential for any system as it offers excellent compatibility to run heavier tools, software, and games on a system. It is necessary to know about the graphics card and its specification to run software on your machines according to its requirements. However, many Linux users face issues while checking the specification of their graphic card so if you are one of them, then read this article thoroughly.
This article has all of the required information to check what graphics card you have in Ubuntu and its tech specs. We are using the Ubuntu system as a Linux OS as it is widely used as a Linux distro all over the world.
MEGA is a multi-platform application that syncs our files and folders between the local computer and the online MEGA cloud server. All the changes made locally on a personal computer will automatically be synced on the cloud server. MEGA provides a client application for Linux desktops, including Linux Mint. MEGA offers a free 50 GB of storage on the cloud. Moreover, you can also buy more storage if you use more than 50 GB of space.
This post explains the installation and usage of MEGA cloud drive Synch on Linux Mint.
The Linux Operating System’s beauty is that it allows users to do anything using a command-line tool. You can download applications, fetch information, or even whatever you want to intend can be done using the terminal. To extract hardware information of the system, the Linux system introduced the command-line utility “lshw.”
The “lshw” command is a small tool to display a complete picture of hardware configuration. While using this command in a terminal, you will get a print of CPU version, memory configuration, cache information, bus speed, and other PowerPC machines running on the backend.
It is a simple command-line tool, but to display complete information, you must be a super-user; otherwise, it will print partial information.
There are various tools to compress any file to minimize its size for saving storage. GZ files are squeezed through the “GZIP” tool, which is a little bit similar to the zip file. GZIP is one of the most popular compression programs that decrease any file size while keeping the original timestamp, ownership, and file mode. Generally, this compression is used for compressing the web elements to reduce the load time of webpages. However, many people don’t know how to open a GZ file; we will cover complete details on opening a GZ file in Linux.
In the information technology world, security is a major concern these days. Every day new and sophisticated attacks are launched against organizations. System administrators use different ways to harden the security of their servers. One of the common ways to interact with a server is using the SSH (or Secure SHell) protocol which is widely used for remote logging to a server. Besides remote shell logins, it is also used for copying files between two computers. Unlike other methods like telnet, rcp, ftp, etc., SSH protocol uses an encryption mechanism to secure the communication between two hosts.
The security provided by the SSH protocol can be further enhanced by using two-factor authentication. This will further put a strong wall between your host computer and the attackers. To connect to your remote server with SSH, you will require a password as well as a verification code (or OTP) from an authenticator application running on your mobile device. This is really helpful if an attacker steals your password, he will not be able to login into your server without the verification code.
There are many authenticator applications available for mobile devices running Android or Apple IOS. This guide has used the Google Authenticator application for both the Fedora server and the mobile device.
Vinagre is a remote desktop client created by the GNOME project. Vinagre supports multiple remote desktop protocols.
I get asked often how you go about adding a domain to your homelab. While it's a relatively easy thing to do, the process differs greatly depending on the gear you have. In this mostly-lecture video, I go over some thoughts and considerations for adding a domain to your lab.
Your data center might depend on virtual machines (VMs), and you might use VirtualBox for some of those VMs. If that's the case, what do you do when disaster strikes? Do you already have a plan set in motion for such an eventuality? You should. In fact, you must.
In this article, we will create an SQS queue using Terraform in "region = eu-west-3". We will also add a policy that will allow all to send messages to the queue. Before we proceed with the article, it is assumed that you already have a basic understanding of SQS and Terraform as well. After you create an SQS queue, click here if you want to learn to create a subscription between SQS and SNS as it is not in the scope of this article. In this article, we will create a standard queue. Click here if you want to know more about arguments and properties available in Terraform for SQS. You can use those properties to customize the SQS queue.
Today we are looking at how to install Friday Night Funkin' Multiplayer on a Chromebook. Please follow the video/audio guide as a tutorial where we explain the process step by step and use the commands below.
If you’re a systems administrator, you know the importance of log files. Without those crucial bits of saved information, you might not know where to start troubleshooting issues on your servers. With that information on hand, you are empowered to not only troubleshoot but better optimize your servers for the task at hand.
If you’ve been a Windows admin for years, you know how to view the necessary log files. But what about those Linux servers that are now taking over your data center and populating your cloud hosts? You’ll need to know how to view those log files as well. And since you might be looking at an unfamiliar platform, it might behoove you to get to know how to monitor those Linux log files.
Beginning Linux users are met with a huge mountain of information to learn. What is this terminal thing? How do I run software updates? Which distro do I choose? Those are all common questions. However, there’s a question that still plagues many more experienced Linux users: what’s in each of the directories in the Linux virtual directory system? Here we cover everything from “/” to “/boot” in our guide to the Linux virtual directory system.
What Is Linux Virtual Directory System?
A Virtual Directory System is a way of organizing files and directories in a computer operating system. The reason why it’s called “virtual” is that there’s no actual physical component – on Window, you have your “C:” drive, “D:” drive, and so on. On Linux, all physical disks are treated as files in your virtual directory system. This is where the phrase “everything is a file” comes from. Even the disk in your system that you’re working off of for your operating system is treated as a file.
Want to get Google search suggestions in your system search results? There’s now an extension to enable the feature in Gnome Desktop.
Google Search Provider is the extension inspired by DuckDuckGo Search Provider. With it, typing any keyword in the Activities overview or ‘Show Applications’ search box will display Google search suggestions. And you can click to open the result in your favorite web browser.
Bringing on some 8-bit inspired horror, Sunshine Manor from Fossil Games is confirmed to be releasing this Fall and the developer put out a new trailer.
Another game that was successfully funded from Kickstarter, Sunshine Manor is a standalone prequel to their previous game Camp Sunshine. It's designed as a love-letter to retro gaming and classic 1980s horror films. Taking inspiration from movies such as From Beyond, Friday the 13th, and A Nightmare on Elm Street, while mixing gameplay mechanics from games such as the beloved – and long-running - The Legend of Zelda, Resident Evil and Silent Hill series.
Steam is a gaming platform that sells and manages games on Windows and Linux. Since FreeBSD has some pretty good Linux emulation, it is possible – with some footnotes – to run Linux Steam Games on FreeBSD. This was already possible in 2016 but the tooling keeps being updated, so let’s take a look at how things work.
Race The Sun was a wonderful little game released back in 2013 and now Flippfly LLC are back with a new more combat-focused game called Whisker Squadron that might scratch your Star Fox itch.
"Whisker Squadron is brought to you by the team who made Race The Sun. We are building on that game's technology to combine silky smooth, immersive flight with roguelike elements, to create an experience that's unlike anything on the market today. If you liked Starfox, you'll love the character banter and playful story. If you liked Race The Sun, you'll feel right at home with the forward-moving action and smooth controls. If you liked tactical roguelikes such as FTL or Slay The Spire, you're going to love the special events between worlds and tactical upgrade choices."
If you love tower defense games mixed with a little real-time strategy try out Vectorio, a new Early Access release on Steam that blends them together and it's free too.
The main objective in Vectorio is simply to expand and claim the map in the one game mode currently available. A simple idea but it does end up quite tense! As you expand, your heat level rises and as it does so more and more enemies will be attracted towards you. A fun idea for gamers who love base building and optimising defences. You also have power to keep in mind so you can't just overload your defences as you will end up completely overrun.
Plasma 5.21 was released in February 2021 with many feature refinements and new modules to complete the desktop experience.
This release adds three weeks' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include...
For the past couple of years Andreas Cord-Landwehr has done excellent work on moving KDE in a more structured licensing direction. Free software licensing is an often overlooked topic, that is collectively understood to be important, but also incredibly annoying, bureaucratic, and complex. We all like to ignore it more than we should.
If you are working on KDE software you really should check out KDE’s licenses howto and maybe also glance over the comprehensive policy. In particular when you start a new repo!
I’d like to shine some light on a simple but incredibly useful tool: reuse. reuse helps you check licensing compliance with some incredibly easy commands.
Say you start a new project. You create your prototype source, maybe add a readme – after a while it’s good enough to make public and maybe propose for inclusion as mature KDE software by going through KDE Review. You submit it for review and if you are particularly unlucky you’ll have me come around the corner and lament how your beautiful piece of software isn’t completely free software because some files lack any sort of licensing information. Alas!
This release of GTG has been 9 months in the making after the groundbreaking 0.4 release. While 0.4 was a major “perfect storm” overhaul, 0.5 is also a very technology-intensive release, even though it was done in a relatively short timeframe comparatively.
Getting Things GNOME 0.5 brings a truckload of user experience refinements, bugfixes, a completely revamped file format and task editor, and a couple of notable performance improvements. It doesn’t solve every performance problem yet (some remain), but it certainly improves a bunch of them for workaholics like me. If 0.4 felt a bit like a turtle, 0.5 is a definitely a much faster turtle.
10 years ago today was April 6, 2011.
Windows XP was still everywhere. Smartphones were tiny, and not everyone had one yet. New operating systems were coming out left and right. Android phones had physical buttons, and webOS seemed to have a bright future. There was general agreement that the internet would bring about a better world, if only we could give everyone unrestricted access to it.
This was the world into which GNOME 3.0 was released.
I can’t speak to what it was like inside the project back then, this is all way before my time. I was still in high school, and though I wasn’t personally contributing to any free software projects yet, I remember it being a very exciting moment.
GNOME Internet Radio Locator 4.0.1 with KVRX (Austin, Texas) features updated language translations, new, improved map marker palette with 125 other radio stations from around the world with live audio streaming implemented through GStreamer.
Today we are looking at Linux Lite 5.4. It comes with Linux Kernel 5.4, KDE 5.21, and uses about 1GB of ram when idling. Enjoy!
In this video, we are looking at Linux Lite 5.4. Enjoy!
I got lucky with my original hackweek project and I have managed to set up my Leap 15.3 based NAS and private cloud running on NextCloud earlier than planned. So I though that as an extra project I will set up a proper system monitoring service. The monit service is very handy (thanks for the idea to Paolo Stivanin) but by default it wants to send emails when something goes wrong. Instead of emails I would prefer a real instant message. I am using mostly Telegram for personal purposes. Sure I am using Signal, Matrix, Slack and Rocket.Chat too and technically I have WhatsApp account too. But I decided to start with Telegram. Installing and configuring monit was easy and quick. The monit is using so called alert where it can execute any shell command.
We upgraded our internal PostgreSQL cluster to the latest version last week.
Time passes by so quickly: we installed our PostgreSQL cluster around 2008. At least, this was the time of the first public MirrorBrain release 2.2, which was the reason to run a PostgreSQL installation for openSUSE. But MirrorBrain (and therefor the PostgreSQL cluster behind it) is way older. So maybe it’s fair to say that MirrorBrain started with openSUSE in 2005…?
Anyway: if you maintain a database for such a long time, you don’t want to loose data. Downtimes are also not a good idea, but that’s why we have a cluster, right?
While the MirrorBrain database is currently still the biggest one (>105GB in size and ~120 million entries alone in the table listing the files on the mirrors), our new services like Matrix, Mailman3, Gitlab, Pagure, lnt or Weblate are also not that small any more. All together use currently 142GB.
We already upgraded our database multiple times now (starting with version 7. in the past). But this time, we decided to try a major jump from PostgreSQL 11 to 13, without any step in between.
Fedora’s Diversity & Inclusion Team held a virtual meetup on Sunday March 21st, 2021. We had more than 20 attendees, with three main planning sessions and a Storytelling Workshop. The team had a successful event connecting, processing, and looking towards the future. The Storytelling Workshop was a fun way to unwind after a day of meetings and do something different as a team.
It seemed like a classic April The First spoof. Indeed, some tech titles had it on their lists of best pranks of the day. But it's true: the software zombie court case to end all zombie software court cases has woken from its slumber. Nearly 29 years after it first lurched from the crypt, SCO v The World Of Linux is back, and it smells just as bad as ever.
The details need not worry us: they were bad enough at the time. Have a look at this timeline if you want to follow the trail of dead.
At its most basic, the whole saga started with the reanimated Unix dev corpse SCO Group claiming it owned the rights to core technology in Unix and Linux, and that everyone else was using them illegally. An opening court case against IBM was followed by a salvo of letters demanding money from 1,500 companies, then the pre-IBM Red Hat countersued to stop the nonsense.
In this week’s Training Tuesday blog, we present a set of free, short videos on storage topics related to your Linux cloud instances. These videos demonstrate how to attach various types of cloud storage to your Linux instances and how to create shared cluster storage for Linux instances in Oracle Cloud Infrastructure.
This is the 38th edition of the Kafka Monthly Digest! In this edition, I’ll cover what happened in the Apache Kafka community in March 2021.
For last month’s digest, see Kafka Monthly Digest: February 2020.
Two of my greatest passions in life are sports and technology. So, I feel incredibly fortunate that I’m a Technology Program Manager for IBM Sports & Entertainment Partnerships, the team that produces the digital experience with some of the greatest sporting events in the world, like the US Open Tennis Championships and Wimbledon.
In this role, I’ve had some incredible experiences, attending iconic events and meeting world-renown athletes. But, today I fulfilled a long-held dream. Today, I set foot on Augusta National Golf Club, the home of the Masters.
With the push towards wide-scale 5G and edge service deployments, it’s important for Digital Service Providers (DSPs) to have a solid foundation for responding to customer challenges and requirements. Red Hat Enterprise Linux 8 offers several benefits for DSPs. With improved operating system performance, DSPs can take advantage of better throughput to deliver enhanced user experience for their customers.
With the release of Red Hat Enterprise Linux (RHEL) 8.3 and building on our successful collaboration with Intel, Red Hat has extended the list of certified hardware to include Intel’s 3rd Gen Xeon Scalable processors (code-named Ice Lake, model Platinum 8360Y), and support for Intel’s latest 100Gb network adapter, the E810 series.
Earlier this year we announced changes to our global sales leadership, and as Larry Stack takes on the role of executive vice president of Global Sales and Services, we’re excited to announce changes to our regional leadership team. Dirk-Peter (DP) van Leeuwen, previously senior vice president and general manager in Asia Pacific, has been named senior vice president and general manager of North America Commercial Sales. Marjet Andriesse, who joined Red Hat as vice president of Sales in Asia Pacific in October 2020, succeeds van Leeuwen in leading the company’s Asia Pacific region as vice president and general manager. Both appointments are effective immediately and van Leeuwen and Andriesse will report to Stack.
Two months have passed since the last status update, but not much has changed since Debian is more or less frozen for the release of Bullseye, and only critical bugfixes are allowed. As reported before Debian/bullseye will have Plasma 5.20.5, Frameworks 5.78, Apps 20.12. Debian/experimental already carries Plasma 5.21.4 and Frameworks 5.80, and that is also the level at the OSC builds.
Note that we use version 0.2.10 of osmo, as that is the last that uses libhtml2 for markup. Later versions of osmo require webkitgtk, which is an enormous package. libhtml2 is small and is used in a couple of other apps in EasyOS and the pups. One of them is Notecase, the other is Surfer (the small html file viewer used in EasyOS for viewing local help documents). So please don't recommend that we upgrade osmo! We will keep patching it for as long as we can. It is suggested in the Murga Forum thread linked-to above, that libxml2 version is to blame. I found that 2.8.0 is too old, a required function is missing. However, 2.9.0 works. What I have done is build the osmo executable by linking it statically with libxml2.a from the 2.9.0 package. This results in a somewhat larger 'osmo' binary, that works in EasyOS and there is no conflict with the later version libxml2 shared libraries in Easy.
There is a new application available for Sparkers: Ventoy
Creating the backup is an important activity to be carried out if you are working on sensitive data. For instance, if you have some sensitive official documents on your hard drive and lost your hard drive, your necessary data is gone. Therefore, having a backup of your confidential and essential data is always a wise decision. From the backup, you can quickly restore your data at any time.
For Linux Mint, there are several graphical tools available for creating backups.
This post discusses the best graphical backup tools for Linux Mint.
There is support for Linux and Windows Embedded plus Advantech’s optional iManager WISE-DeviceOn software for remote device management.
Advantech’s IP65-protected “One-to-One Visitor Thermal Screening Kiosk” runs Android on a Rockchip RK3288 and has a 11.6-inch touchscreen, a 2MP camera for face capture, and an Avalo thermal sensor.
A year ago, we posted a story headlined Embedded Linux joins the Covid-19 battle, which covered various embedded solutions targeting a response to the coronavirus. Products included a thermal-sensing 5G patrol robot based on Advantech’s MIC-770 computer.
Raspberry Pi is widely known as a multi-purpose computer. It was developed initially to make computer learning and coding cheap and practical for students. Later on, it found popularity with DIY enthusiasts and project builders because it’s low-cost, versatile, and compact. In almost a decade, the credit-sized board already spanned four generations, and the Raspberry Pi Foundation already sold more than 30 million boards.
Raspberry Pi’s latest generation, the Raspberry Pi 4 B, is one powerful beast. Armed with a quad-core Broadcom CPU that clocks at 1.5GHz, a Broadcom GPU, up to 8GB of RAM, a Gigabit Ethernet, Wi-Fi, and Bluetooth, it’s a Pi that can deliver a desktop-level performance. However, there is one downside to it – overheating.
Like its predecessors, Raspberry Pi 4 B does not contain a built-in ventilation system. It wasn’t really a problem with the previous generations considering that their specs are lower. Passive cooling, like adding a heatsink, would usually keep the components cool. In most cases, it’s not even necessary. However, with Raspberry Pi 4’s specs, even a heatsink may not be enough if the Pi is used extensively and even more so if it’s enclosed in a casing.
[...]
The Raspberry Pi Foundation is well aware of the heat issue that RPi 4 B is experiencing; that’s why they have issued a firmware update that would fix this issue. The new firmware, however, does not entirely resolve the overheating problem. For this reason, they have released case fans for Raspberry Pi 4 B. Based on users’ tests, the RPi 4’s temperature does not go beyond 60€°C when there’s a fan installed, way below the throttling point of 80€°C. The fan thus helps in fully optimizing the Pi’s performance while keeping components in average temperatures.
Do you need to purchase a fan when you buy an RPi 4 B? That would totally depend on what tasks you regularly perform with the Pi and how long you’re usually using it.
Suppose you’re using your Raspberry Pi computer for everyday tasks like web browsing, document processing, playing your favorite music, and other light computing tasks. In that case, you can use the RPi 4 without a fan. If you’re just connecting one monitor instead of two, and you’re not using it for long periods, then the Pi’s temperature would not reach the threshold temperature for thermal throttling. Even if you’re not using the Pi intensively, it is still recommended to have a cooling component installed. A heatsink would generally be enough for lightweight tasks.
As Peter Balch explains, COVID-19 can sometimes give rise to cardiac complications. So, while not presented as an actual piece of medical equipment, he decided to construct an ECG (electrocardiogram) unit using an Arduino Nano for control along with an integrated 320Ãâ240 SPI display.
Starting from just $35, Raspberry Pi is one of the cheapest computers that one can own, and the craziness doesn’t end at its price tag. From building structurally complex IoT projects to deploying remote servers or using it as your everyday desktop computer, there’s a lot that you can do on a Raspberry Pi.
Android Studio is a platform that provides a bundle of tools for developing Android apps on Windows, macOS, Linux, and ChromeOS. However, if you have just installed Studio on Linux and struggling in creating a Desktop shortcut or adding its folder in the system path to run Android Studio GUI directly from the command line, here is a tutorial on that.
We already have shown a tutorial- how to install Android Studio on Linux such as Ubuntu 20.04, CentOS, Linux Mint, etc. If you have not installed it yet, then see that. Also, those who have installed this Android app developing platform using SNAP package manager then don’t need this tutorial. Because it will automatically create a desktop shortcut.
Thus, this tutorial is for those who have installed Android studio by downloading its package available on the official website.
There are plenty of Amlogic TV boxes around, but unless you buy from the big players, most devices won’t support Netflix FullHD/4K because certification is hard to get for smaller companies.
The Hailstorm device scaling program launched in 2018 aimed to make the process easier on Amlogic and Hisilicon processors, and HiMedia S1 TV dongle was one of the first to get approved. But now MECOOL KM2 joins the rank of Netflix 4K certified devices. The TV box is powered by an Amlogic S905X2-B processor running Android TV 10, also known as Android TV on Android 10.
LineageOS, the free and open source Android distribution, has released version 18.1, which is based on Android 11 and adds builds for more than 60 smartphones to its roster.
Back in February we covered Google's work on the Lyra voice/audio codec designed for fitting with very low bit-rate audio for speech compression in use-cases like WebRTC and video chatting even on the most limited Internet connections. Thanks to leveraging machine learning, Lyra can function at just 3kbps. The code to Lyra is now public.
Lyra when originally announced by Google back in February sounded quite promising with their effort to allow for video chats over 56kbps Internet connections when Lyra is paired with the AV1 video codec. Getting decent voice quality at 3kbps was quite an engineering feat but made possible via their machine learning work.
Signal Messenger LLC forgot to update the GitHub repository for the server-side part of their Signal messaging application for almost one year. Their last git commit to the Signal server was done on April 22nd, 2020 - until someone there remembered that they had promised to be a "open source" company a few hours ago. Signal just pushed a massive source code dump with all the code commits for Signal Server v3.21 to v5.48 to their public GitHub repository.
[...]
The new public code commits are accurately dated, reflecting the dates when the code was added to a private repository. That makes it look as if Signal has been pushing their code updates to git all along if you just glance at the commit history on their public GitHub repository. Signal Messenger LLC has apparently been using a git version control system all along, they were just not making their code commits public.
Tume, our source in the Systems Analyst / Game Developer / FLOSS community who informed us about this code dump, has not been able to find any official statement explaining why Signal Messenger LLC seemingly forgot to update their Signal-Servers public repository for almost one year or why they suddenly remembered.
The new Firefox design change – code-named “Proton” is almost ready for release. Let’s take a look at how it looks and how to enable it.
The Proton design is in “work-in-progress” for quite some time and we reported a quick preview earlier. They were mostly wireframe design, not a real prototype at that time. However, the developers worked over the months and we have the Proton design refresh is available in Firefox Nightly which you can try right now.
The Firefox Proton will be released as default with Firefox 89 due in May 2021. So that means, we have almost 1.5 months until the final release of this new Firefox look. Let’s dive in.
The Firefox web browser is finally making the long-anticipated WebRender rendering engine the default on GNU/Linux when Firefox 88 is released later this month. WebRender, developed as apart of the "Quantum" project, has been optionally available since Firefox 67. It's not impressive performance-wise, but it doesn't hurt either. There's also a new configuration switch that makes enabling VAAPI hardware video decoding easier. More is planned, a improved, or perhaps just slightly different, interface will arrive when Firefox 89 is released towards the end of May.
[...]
Mozilla integrated the WebRender rendering engine from Servo into Firefox and made it optionally available when Firefox 67 was released on May 21st, 2019. It has been possible to turn it on by flipping gfx.webrender.all to true in the special configuration page you can get typing about:config in the address bar since then, but it has so far not been a default. That will change when Firefox 88 is released on April 20th.
This old addage is valuable advice that has been passed down through generations. But it hasn’t stopped these people from rewriting command line tools perfected 30+ years ago in Rust.
This week we’ll take a quick look at exa, a replacement for ls. So why should you ignore the wise advice from the addage and replace ls? Because there are marginal improvements to be had, duh! Although the improvements in this case are far from marginal.
During the organization's LibrePlanet virtual event on March 19, Stallman announced that he was rejoining the board and does not intend to resign again. His return has drawn condemnation from many people in the free software community. Just days after his announcement, an open letter calling for Stallman to be removed again and for the FSF's entire board to resign was signed by hundreds of people.
Terminal Hyperlinks are a new way for programs to print click-able text in terminals and terminal emulators. Along with the app:// protocol, the hyperlinks can be used to greatly enhance the experience of using CLI (command-line interface) programs. We are making extensive usage of this novel feature in GNU poke and we are very happy with the results.
While Skylake was introduced a half-decade ago already, Intel's open-source engineers aren't done relentlessly optimizing for it and subsequent 14nm processors. Hitting the GCC 11 open-source compiler today was an optimization for benefiting Skylake through the likes of Cascade Lake with some possible performance benefits.
Intel open-source compiler expert H.J. Lu merged a patch he posted a few days prior to the GCC mailing list. The patch that landed this morning is updating the memcpy and memset inline strategies for Skylake family CPUs.
With Clang12 almost released, I guess it's high time to write a conclusion to the Clang11 changes that improve compilation times with PCHs. I originally planned to do this after the Clang11 release, but with the process to get the changes reviewed and merged having been so tedious I was glad it was finally over and I couldn't at the time muster the little extra effort to also write this down (I spent way more time repeatedly writing 'ping' and waiting for a possible reaction than writing the code, which was really demotivating). But although the new options are described in the Clang11 release notes, I think it'd be useful to write it down in more detail.
First of all, I've already written why C++ developers might care, but a thousand pictures can be worth more than a thousand words saying how this can save you even 60% of the build time...
Git is designed in part to enable experimentation. Once you know that your work is safely being tracked and safe states exist for you to fall back upon if something goes horribly wrong, you're not afraid to try new ideas. Part of the price of innovation, though, is that you're likely to make a mess along the way. Files get renamed, moved, removed, changed, and cut into pieces. New files are introduced. Temporary files that you don't intend to track take up residence in your working directory.
In short, your workspace becomes a house of cards, balancing precariously between "it's almost working!" and "oh no, what have I done?". So what happens when you need to get your repository back to a known state for an afternoon so that you can get some real work done? The classic commands git branch and git stash come immediately to mind, but neither is designed to deal, one way or another, with untracked files, and changed file paths and other major shifts can make it confusing to just stash your work away for later. The answer is Git worktree.
Learning to code involves learning both the programming logic and the syntax of a specific programming language. When I took my first programming class in college, the language taught was C++. The first code example, the basic "Hello World" program, looked like the example below.
We successfully deployed ThreadSanitizer in the Firefox project to eliminate data races in our remaining C/C++ components. In the process, we found several impactful bugs and can safely say that data races are often underestimated in terms of their impact on program correctness. We recommend that all multithreaded C/C++ projects adopt the ThreadSanitizer tool to enhance code quality.
What is ThreadSanitizer?
ThreadSanitizer (TSan) is compile-time instrumentation to detect data races according to the C/C++ memory model on Linux. It is important to note that these data races are considered undefined behavior within the C/C++ specification. As such, the compiler is free to assume that data races do not happen and perform optimizations under that assumption. Detecting bugs resulting from such optimizations can be hard, and data races often have an intermittent nature due to thread scheduling. Without a tool like ThreadSanitizer, even the most experienced developers can spend hours on locating such a bug. With ThreadSanitizer, you get a comprehensive data race report that often contains all of the information needed to fix the problem.
As an Automotive HMI crew, we wonder how to make the digital experience available for everyone. Our objective was to define the automotive HMI solution of a fully digital dashboard from premium cars in a much simpler and cost-effective way.
We focused on modern HMI UI and automotive components by using a single MCU. Nowadays, automotive hardware has rapidly become more powerful. In parallel, we can now use new tools for the rapid development of production-ready interfaces.
Teamed-up with Qt & NXP, we created the HVAC demo in a real case scenario for the automotive market. The demo is using dual-core architecture, dedicated GPU acceleration, and shared memory. All that gives a constant 60 fps on the newest NXP board with Qt for MCUs technology.
These days, there's an app for everything – from banking to styding and from trading to shopping. Every business has an app, and even our governments have simplified their services into app form. But wait a minute – building and mantainig an app is cumbersome, and it's quite expensive for small businesses.
The Django team is happy to announce the release of Django 3.2.
This version has been designated as a long-term support (LTS) release, which means that security and data loss fixes will be applied for at least the next three years. It will also receive fixes for crashing bugs, major functionality bugs in newly-introduced features, and regressions from older versions of Django for the next eight months until December 2021.
Version 3.2 of the Django web framework is out; it has been designated as a long-term-support release.
Welcome to Django 3.2!
These release notes cover the new features, as well as some backwards incompatible changes you’ll want to be aware of when upgrading from Django 3.1 or earlier. We’ve begun the deprecation process for some features.
See the Upgrading Django to a newer version guide if you’re updating an existing project.
Django 3.2 is designated as a long-term support release. It will receive security updates for at least three years after its release. Support for the previous LTS, Django 2.2, will end in April 2022.
It is estimated that there are 24 million eCommerce websites on the internet. Do you want to learn how to make one more?
We released a course on the freeCodeCamp.org YouTube channel that will teach you how to create an e-commerce website using Django and Vue.
This course was developed by CodeWithStein. He has created many great tutorials on his YouTube channel and we wanted to bring him to a wider audience.
To watch this course, it would be helpful to have at least some knowledge of both Python and JavaScript since Django uses Python and Vue uses JavaScript.
Django framework uses different types of templates to present the data of the application. The Django admin interface uses the custom template tag. The looks of these interface elements, such as buttons, fields, etc., are the same for all pages. The Django developer can define the custom template tag and filter to the extent the template engine and the new template tag can be used using the {% custom_tag %}. The template tag that is used to display data by rendering another template is called the inclusion tag. The way of using the inclusion tag in the Django template is shown in this tutorial.
Model is one of the significant parts of the database-based Django application. The model defines the structure of the database. The data type of the database table and the way of inserting data based on different attributes are described in the Model. The data validation can be controlled by using the model also. Each table in the database contains a particular number of fields or columns. The model defines the type of each field of the table. The default attribute is used in the model to set a default value for a particular area if the user for that field inserts no data. The default value of a field can be blank or any specific value. The null and blank values are not the same. null is used to define that the empty value is allowed or not for a particular field. If the null is set to False, then the empty string will not be permitted in the integer-typed field, but the empty string can be assigned in the string-typed field. If the null is set to True, then the NULL value will be given in the integer-typed field in place of an empty string. blank is used for the form validation mainly and does not check the field’s data type. The way of using default and null attributes in the Django model has shown in this tutorial.
Date and time values vary based on the zone. These values are needed to change for those Python applications that require dealing with international users. According to the zone, the dateTime module of Python cannot convert the date and time values. This problem can be solved by using the pytz module of Python. This module is not installed in Python. So, you have to install this module before using it in the script. How the pyzt module can be installed and used in Python, have shown in this tutorial.
JetBrains has released the initial version of Projector, an open source tool and framework for running JetBrains IDEs and Swing apps remotely over your network.
Swing is a lightweight graphical toolkit for Java that provides a wide range of widgets.It is part of Oracle's Java Foundation Classes (JFC) that provide a GUI for Java programs, is written in Java, and is built on top of the AWT (Abstract Windowing Toolkit) API. It goes further than AWT in providing platform-independent and lightweight components including buttons, checkboxes, menus and radio buttons. IDEs such as Android Studio and JetBrains IDEs use Swing for the UI part of applications.
OpenHPC is pleased to announce the release of OpenHPC, v2.1. This is an update release for the OHPC 2.x branch targeting support for CentOS8 and OpenSUSE Leap 15. This update release provides a number of component updates and two package additions.
Security updates have been issued by Debian (chromium, netty, python-bleach, and python3.5), Fedora (libmediainfo, libzen, and mediainfo), Mageia (openssl), openSUSE (chromium), Red Hat (389-ds:1.4, flatpak, kernel, kernel-rt, kpatch-patch, libldb, and virt:rhel and virt-devel:rhel), and Ubuntu (python-django and ruby-rack).
Canonical and Open Robotics announced today a partnership for Robot Operating System (ROS) Extended Security Maintenance (ESM) and enterprise support, as part of Ubuntu Advantage, Canonical’s service package for Ubuntu. ROS support will be made available as an option to Ubuntu Advantage support customers. As a result, users already taking advantage of critical security updates and Common Vulnerabilities and Exposures (CVE) fixes now have a single point of contact to guarantee timely and high quality fixes for ROS.
Together, the two companies support the robotics community by making ROS robots and services easier to build and package, simpler to manage, and more reliable to deploy.
“With ROS deployed as part of so many commercial products and services, it’s clear that our community needs a way to safely run robots beyond their software End-Of-Life dates. Canonical’s track record delivering ESM, together with our deep understanding of the ROS code base, make this partnership ideal. Ubuntu Linux has been central to the ROS project from the beginning, when we released ROS Box Turtle on Ubuntu Hardy over a decade ago” says Brian Gerkey, CEO of Open Robotics. “We’re excited to be part of this offering that will enable users to access quality support from both organizations.”
Developing robots is not like building apps or IoT devices. Robots balance complex features such as scene awareness, social intelligence, physical intelligence, communication, dialogue, learning from interaction, memory, long-term autonomy, safe failure… the list goes on and on.
As a result, robotics startups can take years to get to a minimum viable product (MVP). As code develops and packages change, the Robot Operating System (ROS) needs to be continuously patched and updated. This is time consuming and detracts from your robotics development, but running unpatched and unmaintained versions of ROS exposes your robot, company and customers to serious risk.
Once deployed, robots are expected to last years on-site, meaning robotics companies either need to factor in OS and software upgrade into their maintenance plans, or run on unsupported software. This also affects those developing services for robots such as fleet management solutions, navigation or computer vision systems.
Kees Cook has posted a long list of security-related improvements that made it into the 5.9 kernel release.
The Reproducible Builds project relies on several projects, supporters and sponsors for financial support, but they are also valued as ambassadors who spread the word about the project and the work that we do.
This is the second instalment in a series featuring the projects, companies and individuals who support the Reproducible Builds project. If you are a supporter of the Reproducible Builds project (of whatever size) and would like to be featured here, please let get in touch with us at contact@reproducible-builds.org.
We started this series by featuring the Civil Infrastructure Platform project, but in today’s post we are speaking with Michael Brennan, the program officer on the Technology and Society team at the Ford Foundation.
PodSecurityPolicy (PSP) is being deprecated in Kubernetes 1.21, to be released later this week. This starts the countdown to its removal, but doesn’t change anything else. PodSecurityPolicy will continue to be fully functional for several more releases before being removed completely. In the meantime, we are developing a replacement for PSP that covers key use cases more easily and sustainably.
What are Pod Security Policies? Why did we need them? Why are they going away, and what’s next? How does this affect you? These key questions come to mind as we prepare to say goodbye to PSP, so let’s walk through them together. We’ll start with an overview of how features get removed from Kubernetes.
Facebook can't keep themselves out of trouble, fairly recent Facebook had another really big data leak. Well maybe, the data may not be as recent as initially thought but a lot of the data is still going to be very valuable for bad actors.
Last month, it was learned that the security cameras for police departments, hospitals, prisons, and schools were hacked. All the cameras involved in the breach were connected to the Verkada security firm. Further information has now been learned on how this hack was carried out.
Kinsella on Liberty Podcast, Episode 331. This is my appearance on Phil Gibson's podcast A Boy Named Pseu. From his shownotes: Stephan Kinsella is an attorney and libertarian writer. We discuss: Libertarianism Patents Trademarks Intellectual Property Economics [See Knowledge vs. Calculation] Bitcoin and then some…
Chief Judge Prost took over as Chief at the end of May 2014 just after Judge Rader stepped-down from the position. The position lasts for seven years and that date is approaching in May 2021. In addition, the statute prohibits a judge from being Chief Judge once they turn 70 years old. Judge Prost is also turning 70 toward the end of May 2021. 28 U.S.C. 45. Thus, we’ll have a new Chief Judge within the next 7 weeks or so.
[...]
Assuming that Judge Moore takes to the role and remains Chief Judge for her full 7 year term, the next Judge on deck will be Judge Chen in 2028. Since all of the current Judges are >50 years old, none would be eligible for the subsequent go-round in 14 years.
On 18th December 2020 the German government approved the legislation required to ratify the Unified Patent Court Agreement. This allows the German government to trigger the arrival of a new European patent court and a new pan-European patent. However, since the legislation was approved, the German Constitutional Court has received two new constitutional complaints in relation to the legality of the Agreement under German national law. The last such complaint delayed the new system by several years. As before, the German president is waiting for news from the Constitutional Court before signing the required legislation into law. So the new complaints may cause a significant delay to the project, or they might otherwise be handled quickly enabling the new system to come into force in around 2022.
The new system is made up of the Unified Patent Court (UPC) and the Unitary Patent (UP). UPs would be a new option for the fate of a patent application granted by the European Patent Office (EPO) following examination under the current system. A UP would have unitary effect across all participating member states, providing coverage for ultimately 24 countries via a single unitary right. The UPC would have exclusive jurisdiction over UPs and all EPs granted by the EPO, including those already granted (subject to transitional provisions). The UPC’s rulings would be enforceable across all of the participating member states. More information on the new system can be found on our website here.
On March 31, 2021, the Federal Circuit granted a motion to dismiss Uniloc 2017's appeal in Case No. 21-1644 (see below). The appeal stemmed from IPR2019-01126, in which Unified received a final written decision finding all of the challenged claims of U.S. Patent 6,519,005 unpatentable under two independent grounds. The patent relates to a method for motion estimation for a digital video encoder.
The US Supreme Court on Monday ruled in a 6-2 decision that Google's limited copying of Oracle's Java APIs in its Android operating system constitutes fair use under US law.
The ruling puts an end to a case that troubled the software industry for more than a decade and narrows the scope of copyright law as it applies to software.
The court had two questions before it: whether software interfaces qualify for copyright protection and whether Google's use of Oracle's software interface code represents fair use, assuming the Java APIs can be copyrighted.
Oracle filed its lawsuit against Google in 2010, claiming copyright and patent infringement for Google's use of Java APIs in Android. In 2012, after the patent claims had been dismissed, US District Court Judge William Alsup ruled that Oracle's Java APIs did not qualify for copyright protection. In 2014, the US Court of Appeals for the Federal Circuit disagreed. Google then asked the Supreme Court to review the decision but its petition was denied.
In 2019, Google asked the Supreme Court to review Oracle’s long-running lawsuit over whether Android’s usage of Java was fair use. The Supreme Court this morning sided with Google and overturned Oracle’s win following a lower court ruling three years ago.
This suit dates back to Oracle’s 2010 purchase of Java developer Sun Microsystems. After the acquisition, the new language owners sued Google, claiming that Android’s use of Java entitled them to an $8.8 billion slice of the operating system’s business and $475 million in lost potential licensing revenue.
The Supreme Court weighed into a decade-old battle Monday between tech firms Google and Oracle, finding the search giant was allowed to use thousands of lines of code to build the Android platform found in mobile devices.
It's been over a decade since Oracle first began its lawsuit against Google over the use of parts of the Java platform in Android. Today, the United States Supreme Court finally ended it, with Google being the long-protracted winner. While the relevant bits of Java haven't been used by Android in years, the end of this court battle sets a precedent in US copyright law that will be important for almost anyone making software platforms in the future.
Google has just secured a major win for Android. The company has been locked in a decade-long battle with Oracle over its use of Java code in earlier Android versions. Oracle sued Google after purchasing Sun Microsystems, which developed the Java platform. Oracle claimed that Google stole its property when it copied code based on Java APIs to develop Android and attract developers, seeking almost $9 billion in damages.
The US Supreme Court has ruled for Google in the battle between the search giant and Oracle over the architecture of Google's Android operating system. In a 6-2 decision published Monday and written by Justice Stephen Breyer, the court ruled that "Google's copying of the Java SE API, which included only those lines of code that were needed to allow programmers to put their accrued talents to work in a new and transformative program, was a fair use of that material as a matter of law."
Oracle, if you recall, filed suit against Google in August 2010, alleging its Android mobile operating system infringed upon Java patents Oracle acquired following its purchase of Sun Microsystems.
Specifically, Google copied roughly 11,500 lines of code from 37 Java application programming interfaces (APIs) “to allow the millions of programmers familiar with the Java programming language to work with its new Android platform.”
The U.S. Supreme Court on Monday ruled in Alphabet's (GOOGL) favor in a copyright dispute with Oracle (ORCL) involving Android software, in a decision that could have broader implications for technology developers. Google stock climbed into a buy zone.
In a 6:2 verdict the US Supreme Court ruled on Monday (05 April) that Google did not violate the copyright law by copying Java API code owned by Oracle, overturning an earlier Appeals Court’s ruling in Oracle’s favour back in 2018. The Supreme Court sided with Google’s argument that the copying of the code was “fair use” when Android APIs were developed.
The case was first filed in 2010 by Oracle after it bought Sun Microsystems, who created the Java programming language, therefore assumed the ownership of the software. Oracle alleged that Google, having refused a commercial licence arrangement, copied over 11,000 lines of the most recognisable portions of the Java platform and used it in a competing platform (Android), therefore violated the copyright law that protects software.
The Supreme Court ruled yesterday in Google v. Oracle that Google did not infringe Oracle's copyright in its APIs by virtue of fair use. The vote was 6-2, with Justice Breyer writing for the Court, and Justices Thomas and Alito dissenting.
The opinion was straightforward and went to great lengths to attempt to explain the technology at issue. I thought it did a decent job of it (definitely more Godot than Guffman), even as the opinion continued to struggle for a good analogy. The Court adopted the file cabinet/drawer/folder analogy presented in Google's brief, which I thought was a terrible analogy...so I guess there's no accounting for taste (or winning advocacy). The court's fair use analysis was influenced by Judge Boudin's concurrence in Lotus v. Borland, though that concurrence didn't actually call it fair use, but instead "privileged use."
Others have and will surely write about the fair use aspects and what this means for software APIs. Contrary to Oracle's ridiculous and vitriolic press statement yesterday, this case will likely not change the way anyone in the industry behaves in the least. APIs have been used and reused for decades, and will continue to be. And contrary to being a barrier to entry, reuse of APIs allows for competitive inroads and entry, including by Oracle, in its mimicry of Amazon's AWS API. (Indeed, the hubris of Oracle's statement in light of its implementation of another company's API is stunning.)
The opinion also has some nuggets for other fair use - discussion of transformation and art, definition of markets for determining harm, another reaffirmation of Campbell v. Acuff-Rose Music, fair use as a mixed question of law and fact (something I discussed in a prior blog post), and so forth.
Instead, I will focus on my hobby horse-whether the APIs are copyrighted, and if so how we get to non-infringement. The Supreme Court explicitly decided that the copyrightability of APIs is a third-rail and did not attempt to touch the issue. There are two ways to read the tea leaves. First, perhaps a majority of the court thought they were uncopyrightable, but feared the effects of saying so. Second (and my guess), perhaps a majority of the court (or a 4-4 split) thought that they were copyrightable, but fair use was an acceptable compromise. The second possibility is why I wrote and submitted my amicus brief, which was intended to give a path to non-infringement even if the APIs were copyrightable.
In Google LLC v. Oracle Am., Inc., 593 U. S. ____ (2021), the Supreme Court spends a few pages walking through procedural aspects of the fair use defense.
Like many patent law doctrines, fair use is a mixed question of law and fact. The defendant’s use of the asserted copyrighted work and its impact on the plaintiff are typically factual issues that must be proven by evidence as weighed by the factfinder (often a jury). These are questions such as “how much of the copyrighted work was copied” and “whether there was harm to the actual or potential markets for the copyrighted work.” Google at 19. However, the questions of law emerge when we are categorizing the importance of the factual findings as well as asking the ultimate question of whether the use was a fair use.
The fact-law divide comes up in various ways: Is there a Constitutional right to a jury trial on the issue; lacking that may a jury still decide the issue; does proof require evidence (as defined by the Federal Rules of Evidence) proven to a particular standard; or instead do we simply look for the ‘right’ answer; on appeal, what is the standard of review — deference or not? Fact/Law also comes up in patent prosecution, but examiners are not charged with making the distinction and the rules of evidence don’t apply.
At the trial court this leads to the very practical question of how easily a judge can dispose of the issue pre-trial. Questions of law are often easy to determine pre-trial; some mixed questions are also relatively easy to determine pre-trial if there is no right to a jury determination; mixed questions involving substantial factual disputes and a right to a jury trial are hard. In patent cases, courts are regularly making pre-trial determinations on claim construction and eligibility, both of which are ultimately questions of law but that can involve underlying factual determinations. Obviousness is another mixed question. Although the ultimate determination of obviousness is a question of law, it is treated differently from claim construction and eligibility. Rather than being decided by a judge, obviousness is typically decided by a jury as fact-finder. The difference is that obviousness typically requires detailed factual determinations that are hard to separate from the ultimate conclusion of obviousness and that are subject to a Constitutional right to a jury trial.