Linux Journal

Considering Fresh C Extensions

3 months 1 week ago
by Zack Brown

Matthew Wilcox recently realized there might be a value in depending on C extensions provided by the Plan 9 variant of the C programming language. All it would require is using the -fplan9-extensions command-line argument when compiling the kernel. As Matthew pointed out, Plan 9 extensions have been supported in GCC as of version 4.6, which is the minimum version supported by the kernel. So theoretically, there would be no conflict.

Nick Desaulniers felt that any addition of -f compiler flags to any project always would need careful consideration. Depending on what the extensions are needed for, they could be either helpful or downright dangerous.

In the current case, Matthew wanted to use the Plan 9 extensions to shave precious bytes off of a cyclic memory allocation that needed to store a reference to the "next" value. Using the extensions, Matthew said, he could embed the "next" value without breaking various existing function calls.

Nick also suggested making any such extension dependencies optional, so that other compilers would continue to be able to compile the kernel.

It looked as though there would be some back and forth on the right way to proceed, but Linus Torvalds immediately jumped in to veto the entire concept, saying:

Please don't.

The subset of the plan9 extensions that are called just "ms" extensions is fine. That's a reasonable thing, and is a very natural expansion of the unnamed structures we already have—namely being able to pre-declare that unnamed structure/union.

But the full plan9 extensions are nasty, and makes it much too easy to write "convenient" code that is really hard to read as an outsider because of how the types are silently converted.

And I think what you want is explicitly that silent conversion.

So no. Don't do it. Use a macro or an inline function that makes the conversion explicit so that it's shown when grepping.

The "one extra argument" is not a strong argument for something that simply isn't that common. The upsides of a nonstandard feature like that needs to be pretty compelling.

We've used various gcc extensions since day #1 ("inline" being perhaps the biggest one that took _forever_ to become standard C), but these things need to have very strong arguments.

"One extra argument" that could be hidden by a macro or a helper inline is simply not a strong argument.

Nick was sympathetic to this point, and said:

Go to Full Article
Zack Brown

Audacity's New Version 2.3.1 Restores Linux Support, NVIDIA Is Acquiring Mellanox, Flickr Announces All CC-Licensed Images Will Be Protected, ExTiX 19.3 Released and Two Fedora Test Days

3 months 2 weeks ago

News briefs for March 11, 2019.

Audacity recently released version 2.3.1. This new version restores Linux support, which was missing in the previous version, and also fixes more than 20 bugs and improves Audacity for macOS. For details on all the new features, go here, and see also the release notes.

NVIDIA is acquiring Mellanox. Phoronix reports that NVIDIA confirmed this morning that the company "will be acquiring Mellanox for $6.9 billion USD" by the end of 2019. Also from the Phoronix post: "Acquiring Mellanox is a high performance computing (HPC) play and now gives NVIDIA more exposure in this space outside of GPU/compute with Mellanox's interconnect products widely being used among high-end servers for Ethernet and other network technologies. NVIDIA and Mellanox hardware is already used in both the much talked about Sierra and Summit super-computers."

Flickr has announced that all CC-licensed images will be protected. According to the Creative Commons article, "all CC-licensed and public domain images on the platform will be protected and exempted from upload limits. This includes images uploaded in the past, as well as those yet to be shared. In effect, this means that CC-licensed images and public domain works will always be free on Flickr for any users to upload and share."

ExTiX 19.3, Build 190307, was released last week. This version is based on the upcoming Ubuntu 19.04 Disco Dingo, uses the Xfce Desktop 4.13 and the 5.0.0-exton kernel. The developer notes that "The best thing with ExTiX 19.3 is that while running the system live (from DVD/USB) or from hard drive you can use Refracta Snapshot (pre-installed) to create your own live installable Ubuntu system. So easy that a ten year child can do it! As an alternative to Xfce4 you can run Kodi 18.2 Leia." You can download ExTiX 19.3 from SourceForge.

Two Fedora Test Days are scheduled for this week. The first one is tomorrow, March 12, for testing kernel 5.0, and the second is Wednesday, March 13, for testing Fedora's IoT Edition. See the Kernel Test Day Wiki and the IoT Test Day Wiki for more information on how to participate.

News Audacity NVIDIA creative commons Flickr ExTiX Linux Fedora
Jill Franklin

Become Queen Bee for a Day Using Python's Built-in Data Types

3 months 2 weeks ago
by Reuven M. Lerner

Cheaters never win, but at least they can use Python.

Like many other nerds, I love word puzzles. I'm not always great at them, and I don't always have time to do them, but when I do, I really enjoy them.

I recently discovered a new daily puzzle, known as "spelling bee", that the New York Times offers online. The idea is simple. There are seven different letters, one in the center of a circle and six around it. Your job is to make as many different words as you can from those seven letters. Each word must be at least four letters long, and each word also must contain the center letter. You can use each letter as many times as you want.

So if the letters are "eoncylt", with a center letter of "y", some of the words you could create might be "cyclone", "eyelet" and "nylon".

The online game gives you a score based on how many words you've made from the potential pool. If you get them all, you're awarded "queen bee" status.

I do pretty well at this puzzle, but I've never managed to find all of the hidden words. Nevertheless, I have become queen bee on a few occasions. How? The answer is simple. I cheated. How? Using Python, of course.

Now, cheating at games isn't necessarily the first order of business when it comes to programming. And cheating at word games in which you're competing against yourself is probably a sign of unhealthy competition. But, doing so also provides a great way to review some of the ways you can use Python's built-in data types and the ease with which you can process words and text.

So in this article, I explore a number of ways you can cheat—and yes, become the queen bee, if only for a day.

Trying All Combinations

To start, you simply might try to form all of the possible combinations you can with the letters you're given. As you might remember from high-school math class, there's a difference between "permutations" and "combinations". When you generate "permutations", the order is important, but when you generate "combinations", the order is not important.

You easily can see this using Python's itertools module, a part of the standard library that has functions named permutations and combinations. Each takes both an iterable data structure and the number of items you want in each resulting list. For example:

Go to Full Article
Reuven M. Lerner

Weekend Reading: Science

3 months 2 weeks ago
by Carlie Fairchild

Mathematics and science tools often depend on cluster and high performance computing, both undeniably Linux strengths. Couple that with the maturity of the science tools available for Linux and you get a lot of computational bang for your buck. Join us this weekend as we review physics, chemistry, biology, astronomy, and other science programs for Linux.

Open Science Means Open Source--Or, at Least, It Should

Why open source was actually invented in 1665.

Getting Started with Scilab

Introducing one of the larger scientific lab packages for Linux.

A Look at KDE's KAlgebra

This article looks at one of the programs specifically available in the KDE desktop environment, KAlgebra.

Atomic Modeling with GAMGI

General Atomistic Modelling Graphic Interface, or GAMGI, provides a very complete set of tools that allows you to design and visualize fairly complex molecules.

Drawing Feynman Diagrams for Fun and Profit with JaxoDraw

In physics, there's a powerful technique for visualizing particle interactions at the quantum level. This technique uses something called Feynman diagrams, invented by physicist Richard Feynman. These diagrams help visualize what happens when one or more particles have some kind of interaction.

Visualizing Molecules with EasyChem

Introducing EasyChem, a program that generates publication-quality images of molecular structures.

Astronomy Software by Any Other Name

Similar to other larger astronomy programs, you can use SkyChart from the desktop to the observatory.

Modeling the Entire Universe

For this article, I want to look at the largest thing possible, the whole universe. At least, that's the claim made by Celestia, the software package I'm introducing here. 

A Good Front End for R

R is the de facto statistical package in the Open Source world. It's also quickly becoming the default data-analysis tool in many scientific disciplines.

Go to Full Article
Carlie Fairchild

Microsoft Released the Code for Windows Calculator, Skype for Web Has Launched but It Won't Work on Linux, Google Debuts Google Coral, Wrath: Aeon of Ruin Coming to Linux and Fedora 30 Wallpapers

3 months 2 weeks ago

News briefs for March 8, 2019.

Microsoft has published the code for Windows Calculator and released it on GitHub under the permissive MIT license. Ars Technica reports that "The repository shows Calculator's surprisingly long history. Although it is in some regards one of the most modern Windows applications—it's an early adopter of Fluent Design and has been used to showcase a number of design elements—core parts of the codebase date all the way back to 1995."

In other Microsoft news, the company's Skype team just launched Skype for Web, so you can skype from a browser instead of needing to install the app. According to ZDNet, "Skype for Web requires Windows and MacOS 10.12 or higher and the latest versions of Google Chrome or Microsoft Edge. That means Skype for Web won't work on a Chromebook or on an Ubuntu or any other Linux machine, and nor will it work in the Firefox browser."

Google this week debuted Google Coral, a dev board and USB accelerator. Hackster.io reports that both of these products "were built around Google's Edge TPU, their purpose-built ASIC designed to run machine learning inference at the edge." So this means that "with the ability to run these trained networks 'at the edge' nearer the data", developers are able "to put the smarts on the smart device, rather than in the cloud. Allowing them to build smart devices that uses machine learning without a network connection at all."

Wrath: Aeon of Ruin is coming to Linux. GamingOnLinux notes that "While Steam only lists Windows system requirements, if you hop on over to the official site there's a Linux "tux" icon to show it will support Linux and the press release sent out by 1C Entertainment has also confirmed this." You can view the trailer here.

Fedora 30 is scheduled to be released July 30, 2019, but you can see the Fedora 30 wallpapers now. 56 wallpapers were submitted, and 16 were chosen by community vote. See the gallery here.

News Microsoft skype Google gaming Fedora
Jill Franklin

Astronomy Software by Any Other Name

3 months 2 weeks ago
by Joey Bernard

In this article, I introduce another option available for the astronomers out there—specifically, Cartes du Ciel, also known as SkyChart. Similar to other larger astronomy programs, you can use SkyChart from the desktop to the observatory.

SkyChart probably won't be available in your distribution's package management system, so you'll need to go to the main website to download it. DEB, RPM and TAR files are available, so you should be able to use it for just about any distribution. Downloads also are available for other operating systems and for other hardware. You even can download a version to run on a Raspberry Pi.

When you first start Cartes du Ciel, you'll be asked where on the globe your observatory is located.

Figure 1. The first step is to set the location where you'll be making observations.

A number of locations already are listed in the database. If your location isn't there, you can enter the latitude and longitude. Once you are done, clicking the OK button pops up a new window with the sky at the current time and location.

Figure 2. The initial display is the sky over your location at the current time.

Unlike many other astronomy programs, time does not progress automatically. The design is more along the lines of being able to generate viewing charts for observation. Buttons in the toolbar at the top allow you to update the time easily.

The default view is to look at the sky at due south. You can change this view by clicking and dragging the star field. If you want to center it on a cardinal direction, there are buttons along the bottom right-hand side of the screen for that task. Just above these cardinal direction buttons, field of view (FOV) buttons set the amount of the sky that is visible.

Along the left-hand side of the main window are several buttons for turning various coordinate systems and markers on and off. Along the top, several toolbars allow you to select which elements of the sky are visible within the sky chart that you are generating. All of these options also are available as menu items. Clicking the Chart menu item provides a list where you can change parameters, such as the field of view, the viewing direction or the coordinate system to use.

Go to Full Article
Joey Bernard

New Security Patch for Ubuntu 18.10, man-pages-5.00 Released, Be Sure to Update Google Chrome, Qt Creator 4.9 Beta2 Now Available and KDevelop Bugfix Is Out

3 months 2 weeks ago

News briefs for March 7, 2019.

Canonical has released a Linux kernel security patch for Ubuntu 18.10 on the heels of yesterday's patch for Ubuntu 18.04 LTS. According to Softpedia News, this patch addresses two of the same vulnerabilities as yesterday's patch: CVE-2019-6133 and CVE-2018-18397. It also addresses CVE-2019-16880, which is an out of bounds write vulnerability discovered by Jason Wang. Update now if you haven't already.

man-pages-5.00 was released yesterday. Michael Kerrisk, the man page maintainer, writes: "This release resulted from patches, bug reports, reviews, and comments from around 130 contributors. The release is rather larger than average, since it has been nearly a year since the last release. The release includes more than 600 commits that changed nearly 400 pages. In addition, 3 new manual pages were added." The release tarball is available from kernel.org, the browsable pages are at man7.org, and the Git repo is available from kernel.org.

Be sure you're running the latest version of Google Chrome: 72.0.3626.121. Google fixed a zero-day exploit last week, but only yesterday "publicized that CVE-2019-5786 was 'High' severity and a zero-day. Source: 9to5Google.

Qt Creator 4.9 Beta2 was released today. You can read about the changes here, and download the open-source version from here.

KDevelop 5.3.2 was released today. This is a stabilization and bugfix release. You can find the installers, AppImage and source code archives here.

News Canonical Security Ubuntu man pages Google Chrome Qt Creator KDevelop
Jill Franklin

Spy Games: the NSA and GCHQ Offer Their Software to the Open Source Community

3 months 2 weeks ago
by David Habusha

Spies worth their salt are generally expected to be good at keeping secrets. With dead drops, encryption, cyanide pills and the like, openly sharing useful information isn’t supposed to be a part of the job description.

So it caught more than a few of us off guard when a couple years ago, some of the top spy agencies began contributing code to GitHub, making it available to the masses by open-sourcing some of their software.

The National Security Agency, the American signals intelligence organization that is tasked with the majority of the cyber-snooping, has released two separate pages on GitHub. The first is the NSA's primary account on GitHub that has 17 listed repos, followed up by its more substantive “NSA Cybersecurity” page with its 31 repositories.

Even though the NSA appears to have been posting some of its software as open source since 2017, presumably a result in part of the effort from the US government to make more of the code produced by the USG available to the public, the agency made news in early January when it announced plans to release a new product to the Open Source community.

The software is called GHIDRA, and it has been described as a tool for reverse-engineering malware. According to reports, GHIDRA has been referenced in the past during the Vault7 document leaks and is available for use across all the major operating systems. Those who are curious for more information on this tool and how to use it can catch a glimpse at a demonstration that the NSA has committed to putting on at this year’s RSA conference.

However, with perhaps less fanfare, it would seem as though it was the Brits who first made the move to take some of their code open source. The British SigInt agency GCHQ released its first piece of open-source tooling with the Gaffer graph database back in 2015, beating the Americans by two years. At the time of writing, the good folks at Her Majesty’s cyber-snooping agency have 39 repositories on offer for all to try out, including one called the CyberChef, which is billed as the “Cyber Swiss Army Knife—a web app for encryption, encoding, compression, and data analysis”.

Go to Full Article
David Habusha

Purism Announces PureOS Is Now Convergent, LibreOffice 6.2.1 Now Available, Security Patch for Ubuntu 18.0.4 LTS, Bugfix Update for Plasma 5 and KaOS 2019.02 Recently Released

3 months 2 weeks ago

News briefs for March 6, 2019.

Purism announces that PureOS is now convergent, which means "being able to make the same application code execute, and operate, both on mobile phones and laptops—adapting the applications to screen size and input devices". With PureOS, Purism "has laid the foundation for all future applications to run on both the Librem 5 phone and Librem laptops, from the same PureOS release".

The Document Foundation announces LibreOffice 6.2.1, the first minor release of the 6.2 version. You can download it from here. Note that this release "represents the bleeding edge in term of features for open source office suites, and as such is not optimized for enterprise class deployments, where features are less important than robustness. Users wanting a more mature version can download LibreOffice 6.1.5, which includes some months of back-ported fixes."

Canonical released a Linux kernel security patch for Ubuntu 18.0.4 LTS (Bionic Beaver). Softpedia News reports that this update addresses three vulnerabilities: "a race condition (CVE-2019-6133) in Linux kernel's fork() system call, which could allow a local attacker to gain access to services were authorizations are cached, and a flaw (CVE-2018-18397) in the userfaultd implementation, which could allow a local attacker to modify files. Both issues were discovered by Jann Horn. Furthermore, the kernel security patch addresses a vulnerability (CVE-2018-19854) in Linux kernel's crypto subsystem, which leads to leaked uninitialized memory to user space under certain situations. This would allow a local attacker to expose sensitive information (kernel memory)." Update now if you haven't already.

KDE yesterday released a bugfix update to KDE Plasma 5, version 5.12.8. The announcement notes that "Plasma 5.12 was released in February 2018 with many feature refinements and new modules to complete the desktop experience. This release adds six months' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important." See the Changelog for all the details.

KaOS recently released the first ISO snapshot of the year, KaOS 2019.02. According to the announcement, "Major updates included a move to Python 3.7 (3.7.2), Readline 8.0.0, Glib2 2.58.3, Qt 5.12.1, PHP 7.2 besides the usual full Frameworks, Plasma & KDE Applications replacements, so most systems will see 70-80% of their install replaced by new packages so a new ISO is more than due."

News Purism PureOS LibreOffice Canonical Ubuntu Security Mobile KDE Plasma KaOS
Jill Franklin

The Digital Unconformity

3 months 2 weeks ago
by Doc Searls

Will our digital lives leave a fossil record? Or any record at all?

In the library of Earth's history, there are missing books. All were written in rock that is now gone. The greatest example of "gone" rock first was observed by John Wesley Powell in 1869, on his expedition by boat through the Grand Canyon. Floating down the Colorado river, he saw the canyon's mile-thick layers of reddish sedimentary rock resting on a basement of gray non-sedimentary rock, and he correctly assumed that the upper layers did not continue from the bottom one. He knew time had passed between the basement rock and the floors of rock above it, but he didn't know how much. The answer turned out to be more than a billion years. The walls of the Grand Canyon say nothing about what happened during that time. Geology calls that nothing an unconformity.

In fact, Powell's unconformity prevails worldwide. The name for this worldwide missing rock is the Great Unconformity. Because of that unconformity, geology knows comparatively little about what happened in the world through stretches of time ranging regionally up to 1.6 billion years. All of those stretches end abruptly with the Cambrian Explosion, which began about 541 million years ago. Many theories attempt to explain what erased all that geological history, but the prevailing paradigm is perhaps best expressed in "Neoproterozoic glacial origin of the Great Unconformity", published on the last day of 2018 by nine geologists writing for the National Academy of Sciences.

Put simply, they blame snow. Lots of it—enough to turn the planet into one giant snowball, already informally called Snowball Earth. A more accurate name for this time would be Glacierball Earth, because glaciers, all formed from snow, apparently covered most or all of Earth's land during the Great Unconformity—and most or all of the seas as well.

The relevant fact about glaciers is that they don't sit still. They spread and slide sideways, pressing and pushing immensities of accumulated ice down on landscapes that they pulverize and scrape against adjacent landscapes, abrading their way through mountains and across hills and plains like a trowel spreading wet cement. Thus, it seems glaciers scraped a vastness of geological history off the Earth's surface and let plate tectonics hide the rest of the evidence. As a result, the stories of Earth's missing history are told only by younger rock that remembers only that a layer of moving ice had erased pretty much everything other than a signature on its work.

Go to Full Article
Doc Searls