__MAIN_TEXT__
feature-image

Page 1

O FR NL IA W E DO AG M

PRO-LEVEL MUSIC MIXING

D EE A 8

Digital audio workstations 1 Ardour 6.5 2 MusE 4.0 3 LMMS 1.2.2 4 Qtractor 0.9 5 Waveform Pro 11.5

PLUS!

HOW TO…

EMULATE THE APPLE II VIDEO CALL WITH JITSI RENDER WITH BLENDER

The #1 open source mag

PLUG & PLAY Pi PROJECTS Amazing builds you can complete in a day: Bitcoin CCTV security Multi-room audio Machine learning Retro games and more!

pages of tutorials & features

67

Expert advice on the best coding languages for school Transform your photos with better GIMP effects

Create a firstperson shooter

Using Python to control the Linux filesystem

LXF May 2021

GAME CODING MAKE SYSTEM TOOLS

Discover how Kubernetes is transforming Linux use


WELCOME

WHO WE ARE We’re trying out Raspberry Pi and Pico projects this issue – so what’s your favourite maker project or Pi add-on?

Jonni Bidwell My RetroPie set up is losing me lots of hours. But I’ve also been mesmerised by magnetic marble tracks from a local maker in Bath. They’re laser-cut from wood with stylish living hinges for the curvaceous bits. A modern take on a childhood classic. Check them out at https://deepmake.io.

Nick Peers My favourite Pi project was one I documented way back in LXF239 and 240: creating a multi-room audio system with Logitech Media Server and a Pi Zero running PiCorePlayer. It’s three years since I installed it, and I’m still listening to music through it every single day.

Les Pounder For me the Raspberry Pi Pico has been a runaway success, more so now that I have the Maker Pi Pico board from Cytron. For $10 I have a Pico and lots of connections for Grove components, a speaker, micro SD card reader and lots of built-in LEDs to play with.

Mayank Sharma I thought I had seen them all, but then last week I heard of a Russian doctoral student who trained a Raspberry Pi 3 to detect and track mosquitoes with the help of OpenCV and AI, before it triggered the mounted one-watt laser to zap them out of existence.

Michael Reed The Pi 400 might be the next thing I buy for myself. My plan would be to turn it into a retro computing workstation. It’s always appealed to me to be able to recreate older machines such as the Amiga and the Acorn Archimedes and have them on tap, in my living room.

www.techradar.com/pro/linux

Pico boo! I remember people used to talk about market disrupters and truly the Raspberry Pi was just that. In a world that looked like it was falling into a corporate-owned walled garden of locked-down “smart” devices, like the Apple iPad and Google Nexus phones, came 10 thousand bare-naked Raspberry Pis that happened to run Linux. Who’d be mad enough to want to buy one of those? Forty million Pi sales later and here we are… It’s not like the Raspberry Pi was unique as a device. Beagle and Arduino had similar single-board computers, but at much higher prices and without necessarily the software backing it up. At the time I read a lot of Pi criticism pointing out the better specs of competing devices, while completely ignoring the software and price point. It’s not quite the same, but when the Apple iPhone launched there were better and more capable devices such as the Nokia E90. However, Apple put the software in place and made its device easier to use and to develop for. If anything, the Raspberry Pi – much like the Apple iPhone – sparked the imagination of developers around the globe. It drew together a community to develop the software and put in place a charitable body to drive the logistics and direction of hardware development. So nine years on the Raspberry Pi Foundation is able to release the $4 Pi Pico, which it’s designed entirely itself and can ship worldwide without a hitch. Remarkable. We’re having our annual look at the best Raspberry Pi projects in conjunction with Tom’s Hardware, because our very own Les Pounder has jumped ship and works for them now, creating endless top-notch Pi news, reviews and projects. The dirty splitter! (Don’t worry Les still writes for us.) It’s not all Pi talk, though. We start a series looking at the basics of using the amazing Blender, try special effects in GIMP, explore Kubernetes, review educational programming languages, create a basic first-person shooter aping Wolfenstein, emulate the classic Apple ][, test audio workstation software and loads more! So enjoy.

Neil Mohr Editor neil.mohr@futurenet.com

Subscribe & save! On digital and print – see p24

May 2021 LXF275     3


Contents

PLUS!

REVIEWS

AMD Ryzen 9 5950X 

17

Zak Storey climbs onto the closest thing the computing industry has to a unicorn, and straps in for the ride of his life.

SUBSCRIBE NOW! Page 24

PLUG & PLAY PI PROJECTS Jonni Bidwell plunders Tom’s Hardware to bring you the best in Raspberry Pi-based entertainment. Turn to page 32 to see the fruits of his labours.

WD Black SN850 1TB 

18

Move over Samsung, there’s a new PCIe 4.0 storage king in town says Alan Dexter, as he reaches for the ermine-lined cloak.

SparkyLinux 2021.03 

19

Its unimpressive appearance intrigued Mayank Sharma, who wants to find how this distro has survived for as long as it has.

SystemRescue 8.0 

20

If you’re as adventurous with your installations as Mayank Sharma, then you’ll want to keep a copy of this distro handy…

CentOS Stream 8 

21

Mayank Sharma studies the distro that has the open source community up in arms, to see what the hullabaloo is all about.

Spiritfarer 

In association with

ROUNDUP

IN-DEPTH

22

In these turbulent times management has shown uncharacteristic compassion and allowed Rachel Watts to contemplate life.

Audio workstations 

26

The Linux desktop has always had its share of music software. Michael Reed looks at the cream of the current Digital Audio Workstations crop.

4     LXF275 May 2021

A parent’s guide to programming  42 Mike Bedford investigates which programming languages to consider if you want to help your children get a headstart in coding.

www.linuxformat.com


CONTENTS ON YOUR FREE DVD

Pi USER Raspberry Pi news 

Mageia 8.0 AntiX 19.3 See page 96

46

Interest heats up for the Coolest Projects, plus Ethernet double-whammy and MicroPython is piped on to the Pi.

MX-Fluxbox Pi 21.02.20 

47

Les Pounder is always on the lookout for a new slice of Pi and with MX Linux he discovers something fresh from the oven.

Escape from evil space squids! 

DVD pages 

48

96

This issue’s coverdisc is your chance to try out the long-awaited Mageia 8 and the lightweight antiX 19.3. Jonni Bidwell takes you through both Linux distributions.

Les Pounder has to evade the clutches of the evil space squids, but can he do the maths to escape the planet?

New tricks for the Pico voltmeter  50 Tam Hanna expands his basic Raspberry Pi Pico voltmeter to improve accuracy and add a resistor measurement capability.

TUTORIALS TERMINAL: Fresh multiplexer

58

Shashank Sharma is enthralled by Byobu, an elegant and efficient solution for managing multiple terminal windows.

CODING ACADEMY Code a first-person shooter 

JITSI: Perfect video conferencing  60 Move over Zoom – Nick Peers reveals how to set up your own public (and private) group video chats for free with Jitsi Meet.

88

Calvin Robinson looks to the iconic PC games Doom and Wolfenstein 3D for inspiration, in the latest instalment in his game coding series.

Monitor cycles in directory trees 

RENDER: Getting started in 3D  92

Mihalis Tsoukalos sips on a cold bottle of Mythos in the Greek sun while working with dictionaries, os.walk(), files, symbolic links and directories.

EMULATE: The classic Apple ][ 

GIMP: Add special effects to photos  82 6

Way-hay for Wayland we cry, NASA lands Tux on Mars, there’s a modular Linux laptop coming, Python2 is going on Fedora, SteamLink goes open source and all your servers belong to Microsoft!

Kernel watch 

10

Answers 

11

We provide the light at the end of various long tunnels, including solving network problems, fixing a scanner that won’t do its one job and making Wi-Fi work as it should.

Mailserver  Coding hitch using Python, success in running a distro off a USB stick, what Microsoft wants from Linux, and more.

www.techradar.com/pro/linux

70

Les Pounder steps into his time machine and travels back to 1977, and not just to watch Star Wars on the big screen for once.

REGULARS AT A GLANCE News 

66

Even if you’ve never used Blender before, Michael Reed will have you blending like a pro by the end of this tutorial.

14

Subscriptions 

24

Fancy getting more creative in your photography? Mike Bedford introduces a few special effects for you to explore.

Back issues 

64

OFFICE: Co-editing documents 

Get hold of previous Linux Format editions – but watch out, they’re selling out fast!

Overseas subscriptions 

65

HotPicks 

75

86

Integration of OnlyOffice Docs with Confluence enables multiple users to edit office documents, finds Kseniya Fedoruk.

IN-DEPTH

Alexander Tolstoy hasn’t got the time to read every Russian Tweet, he’s far too busy reading every new FOSS release and writing them up here, like Photoflare, Qytdl, KWipe, GabTag, Fvid, Draw.io, Spech, 0 A.D., Quadplay, Guitar and Sonice.

DVD pages 

96

Next month 

98

Kubernets krazyness! 

54

We talk to database guru Patrick McFadin.

May 2021 LXF275     5


Newsdesk

THIS ISSUE: Wayland and Ubuntu Tux on Mars Microsoft and AMD team up Modular laptop launch Fedora ditches Python 2

GRAPHICS

Is Wayland ready for prime time? With Ubuntu switching to Wayland as default, along with support from Nvidia and Wine, things are looking good for the display server protocol. or years the Wayland display server protocol has looked like it would become a mainstream alternative to the X Window System. Yet a prime-time release always seemed one year away… Recent moves by some big industry names means that Wayland’s time could finally be upon us. The team behind the Ubuntu distro has announced that they’ll once again be attempting to use Wayland as the default session. While this has previously been attempted with Ubuntu 17.10, the team now feels confident that “now is the right time to try again,” with an aim of using Wayland as default in an LTS (Long Term Support) version. With the GNOME version of Ubuntu not being upgraded in this cycle, the team believes this will make things easier. However, in a forum post (which you can read at http://bit.ly/ LXF275UbuntuWayland), the team admits that people with Nvidia hardware will still use Xorg as default, but “hopefully that situation will be resolved before the LTS.” What will help achieve that goal is the revelation that the upcoming major Nvidia 470 driver series will be “even more Wayland-friendly.” The comments were made by Canonical’s Daniel van Vugt, who observed that “the main reason not to use Wayland on Nvidia is that it doesn’t support hardware acceleration of X11 apps,” but that “Nvidia has a fix on the way.” You can see the original post at http://bit.ly/ LXF275NvidiaWayland.

F

6     LXF275 May 2021

Another exciting hint comes from the Longhorn Twitter account (@never_ released), which claims that the Nvidia 470 driver series will have “full Wayland support on Linux, including XWayland.” With the prevalence of Nvidia hardware, this is a big step forward for mainstream adoption of Wayland. In more good news, a growing number of popular applications now come with support for Wayland. Electron 12 (www.electronjs.org), a tool for creating cross-platform tools, has Wayland support. Wine, a compatibility layer that enables people to run Windows software in Linux, also supports running those applications directly on Wayland compositors (for more

Wayland’s mainstream success hasn’t happened overnight, but its time in the spotlight could be soon.

A GROWING NUMBER OF POPULAR APPLICATIONS NOW COME WITH SUPPORT FOR WAYLAND. information, head to http://bit.ly/ LXF275WINEWayland). In the past, a lack of hardware and software support has prevented Wayland adoption. These industry developments could go a long way towards greater Wayland useage.

www.linuxformat.com


NEWSDESK SCIENCE

OPINION

Linux lands on the Red Planet

The Perseverance rover’s successful Mars landing took Linux and open source software to another planet. inux is no longer just the most widelyused operating system on Earth – it’s now made its way to Mars. NASA recently landed the Perseverance rover on our celestial neighbour, along with a small helicopter, known as Ingenuity. This was used to attempt the first powered flight on a planet other than Earth, and it was powered by Linux. NASA Jet Propulsion Laboratory (JPL) senior engineer Tim Canham said, in an interview with the Institute of Electrical and Electronics Engineers (IEEE) (see http://bit.ly/LXF275IEEE), the “software framework that we’re using is one that we developed at JPL for cubesats and instruments, and we open-sourced it a few years ago.” The framework Canham referred to is F Prime (http://bit.ly/LXF275FPrime), which is an “open-source framework for small-scale flight software systems.” As he explains, because it’s open-source, you can use F Prime that’s made its way to Mars and use it with your own project. “It’s kind of an open-source victory,” Canham says, “because we’re flying an open-source operating system and an open-source flight software framework and flying commercial parts that you can buy off the shelf if you wanted to do this yourself someday.“

L

It’s a hugely exciting development not just for mankind, but for Linux and open source. It shows how open source software can help us explore new worlds, while making it possible for anyone to use the exact same software in their own projects at home – for free. As Twitter user @mikko so dryly observed, Mars is now “the second planet that has more computers running Linux than Windows.” Keep up to date with the Perseverance’s Mars mission at http://bit.ly/LXF275Mars.

L-Caltech CREDIT: NASA/JP

The Ingenuity’s test flight on Mars. This mini helicopter is powered by Linux.

SECURITY

Secured-core server announced

AMD and Microsoft have teamed up to bring a greater degree of security to devices. MD and Microsoft have both announced the launch of its Securedcore Server initiative which, according to AMD’s announcement (http://bit.ly/ LXF275AMDSec), will help you “boot securely, protect your device from firmware vulnerabilities, shield the operating system from attacks and prevent unauthorised access to devices and data with advanced access controls and authentication systems.” Meanwhile, Microsoft’s own announcement (http://bit.ly/LXFMicrosoftSec) reveals that Secured-core Sever “is built on three key pillars: simplified security, advanced protection, and preventative defence.” With a device running Secured-core Server, it can

A

www.techradar.com/pro/linux

boot securely and avoid any firmware vulnerabilities, while protecting the OS from attacks or unauthorised access. As the AMD blog post explains, “The firmware and bootloader can load freely with the assumption that these are unprotected code and knowing that shortly after launch the system will transition into a trusted state with the hardware forcing low level firmware down a well-known and measured code path.” This process enables the OS to ensure the system’s integrity during boot up and during use. What’s interesting is AMD’s involvement, with its Dynamic Root of Trust Measurement being able to use a open-source stack, and could result in more open source firmware for AMD platforms and less dependency on closed source firmware.

SALUTING KERNELCI

Alexandra Pereira is a software engineer at Collabora.

KernelCI has been driving continuous integration for the Linux kernel with hundreds of commits every day since its creation in 2012 and as a Linux Foundation project since 2019. The platform can help you find and fix several problems, including regressions, build failures and merge conflicts from your patches with others. Today, KernelCI is the most complete automated testing and continuous integration tool for the Linux kernel. It can test your code on many platforms performing automatic builds in kernel trees. Builds, tests information and more can be found in its dashboard. Over the past year, the KernelCI dashboard has changed in many points, transitioning from checking basic boot reports to starting to check more advanced test reports. This has opened the way to an increased focus on testing, more specifically functional testing, and on improving quality, stability and longterm support. Looking ahead, work continues towards further improving user experience, and discussions are focused on enhancing KernelCI’s dashboards, visualisation and analytics. If you’d like to take part in this work and share your ideas, please join the discussion on the GitHub repo.

May 2021 LXF275     7


Answers

Got a burning question about open source or the kernel? Whatever your level, email it to lxf.answers@futurenet.com network card Q Confused I’ve been using Linux Mint

Cinnamon flavour for many years. I recently decided to update from version 18.3 to the latest 20.x version. I went through the procedure of going from 18.x to 19.0, then to 19.3 finally to 20.0 ensuring that I had backups and snapshots readily available. The update to version 20 failed abysmally, with no network connection and to make matters worse, substantial loss of data. I reverted to 19.3 but still had problems. The cause was eventually traced to the kernel in use as follows: Linux kernel 5.0.0-32-generic amd64 (End of Life) Everything works OK, network connects. Linux kernel 5.3.0-70-generic amd64 (End of Life) Everything works OK, network connects but shows battery symbol, “Using battery power"! Linux kernel 5.4.x-xx-generic amd64 (all versions) Apps work as long as no network/internet required as no network connection, shows battery symbol as above. I’m now using the 5.3.70 kernel despite the battery symbol. Is this a known problem? My network adaptor looks pretty standard to me. And why the battery symbol – this is a desktop mains powered PC? Or is the battery referred to the one in the keyboard/mouse, in which case there should be two! John Oliver

If the adaptor continues to not appear with the later kernel, check the system journal with this terminal command $ sudo journalctl -b | grep r816

This will show the kernel detecting the Ethernet adaptor and loading, or trying to load, a driver for it. As for the battery issue, if you open a terminal and run $ upower --dump

you’ll see what the system thinks you have in terms of batteries. It’s most likely your mouse battery being seen, but do check. The warning does no harm, and you can remove the battery applet on a desktop machine. However, do check your power management settings – you don’t want your computer to suddenly hibernate just because your mouse battery is getting low! For what it’s worth, my home MythTV backend has the same RTL Ethernet chip and uses the r8169 driver. It has no issues whatsoever. If it did, my wife wouldn’t be able to watch Holby City and I’d be making myself comfortable in the doghouse.

Really? Q Easy? I only have limited computer knowledge, but usually get around most problems. I’ve read your magazine for a few years now and a lot of it is beyond me, but your reviews of various software packages and distributions are always interesting.

Neil Bothwick spends most of his time correcting the editor.

I’ve settled on Mint for a couple of years and run an older back-up computer on 32-bit. My problem are scanners. SANE… is it really Scanner Access Now Easy? If only! I’m using Mint 19.3 64 bit and I just can’t get it to find either my Canon LiDE 300 or the HP DeskJet Plus 4100. I downloaded a trial version of VueScan and that found both scanners, so I know that they’re there and working, but would prefer to stick with SANE and Gscan2PDF. Dave Fisher

A

I think the answer to your first question is that the E in SANE really should stand for Easier. Scanning is better than it used to be, but still throws up problems. I had similar issues with a Canon LiDE scanner a while ago and it turned out to be a permissions problem. If you open a terminal and run $ sane-find-scanner

this should show your scanner, which is clearly available to the system as VueScan can find it. Now run $ scanimage -L

Does the scanner show up here? If not, repeat the command but prefix it with sudo . If the scanner now shows up, the problem is that your scanner is there but your user doesn’t have permission to access it. In that case we need to give your user access. It’s common for distros to

A

This is probably a driver conflict. There are two separate drivers for this network chipset: r8168 and r8169. The r8168 driver is a third-party module that was the standard way of using these Ethernet adaptors, but now the kernel’s built in r8169 driver is the better option. I see from the information you provided that the 5.3.70 kernel, which works, is using the r8169 driver. You need to make sure this is the case for all kernels. Because r8168 is a third-party driver, the simplest option is to uninstall the r8168 package. You should also make sure than any related rules in /etc/modules.d are removed.

www.techradar.com/pro/linux

Whichever program you use for scanning, it’ll use SANE to do the actual scanning, and that needs permission to access the scanner device.

May 2021 LXF275     11


Linux distribution REVIEWS

SparkyLinux 2021.03 Its rather unimpressive-looking screenshots intrigued Mayank Sharma, who wants to find how this distro has survived for as long as it has. IN BRIEF A Debian-based family of distros that produces releases based on Debian’s stable and testing Debian branches. The project puts out several ISO, each with a different desktop environment to cater to all kinds of machines. SparkyLinux is notable for its custom tools.

SPECS Minimum CPU: Pentium 4 and above Memory: 1GB Hard disk space: 10GB Build: Supports both 32- and 64-bit machines

parkyLinux is one of a handful of decent distros that’s managed to survive for over a decade now by building a loyal and sizable community of users around it. The project’s handful of developers produce distros based on Debian’s Stable and Testing branches. The releases based on Debian Stable have 32-bit ISOs as well, which makes them ideal for older hardware. This is the latest release of the distro based on Debian Unstable. These are rolling releases that can be updated perpetually, but the One of the less obvious highlights of the distro is its efforts to support multiple languages, right from the boot loader all the way into the desktop. project still puts out ISOs with a refreshed set of packages to make it easier for new users to get into SparkyLinux. package repositories, remove non-free packages, One of the main attractions of the project is that it’s upgrade the whole system and a lot more all with one available in several versions, each based on a separate click. Then there’s SparkyBackup, which is a fork of the desktop environment. Traditionally, these have been now-discontinued Remastersys script that you can use lightweight ones: LXQt, Mate and Xfce. As if they didn’t to roll your installation into a custom Live environment. have enough on their hands already, starting with this Like all good projects, SparkyLinux backs up a solid release, the project will also produce an edition based offering with enough documentation to help news users on KDE Plasma. and to orient those who are coming from a different Besides their desktop environment, the different distro. The forum boards are lively and feel welcoming editions are all fairly similar, in that they ship with all the to users irrespective of their experience level. productivity tools you’d expect on a standard desktop All things considered, SparklyLinux is one of distro. Installation is handled by the distro-agnostic those rare distros that doesn’t leave enough room Calamares installer, which is now polished enough to for nitpicking. Sure, its default desktop lacks any kind of handle most common installation scenarios. eye candy and doesn’t look very appealing to pull in new users, and it can probably do a better job of presenting its custom utilities, perhaps bundling them all inside a Customised programs custom control centre or at least a special menu. But The other thing that helps SparkyLinux differentiate these are minor quibbles for a project that’s been itself from its peers are its gamut of custom tools chugging along for a decade, produces a lot more that you’ll find in all its editions. The first one you’ll editions than it has developers, and still manages to find encounter post-installation is Sparky Welcome, which time to add yet another edition and also create special unlike other first-run tools on other Linux distros like ones to cater to its community. KaOS’ Croeso, offers fairly limited options. In fact, you can only currently use it to update your system and install any additional language packs. That’s about it. VERDICT Very thoughtfully though, once you’re done with it, the welcome tool will automatically uninstall itself. DEVELOPER: SparkyLinux Team The next custom tool, however, is one of the best WEB: https://sparkylinux.org reasons for using the distro. SparkyAPTus is the distro’s LICENCE: Several package manager that, over the years, has evolved from a simple front-end to apt and dpkg to become a fullFEATURES 8/10 EASE OF USE 8/10 fledged application center. You can use it for everything PERFORMANCE 8/10 DOCUMENTATION 8/10 from installing individual programs, to any of over a dozen desktops with a single-click. A perfectly functional desktop distro that works on new and The app center has a nice curated list of all sorts older hardware alike, and appeals to all kinds of users. of programs, including games and gaming platforms as well as several popular proprietary ones such as Rating 8/10 Chrome, Skype and more. You can also use it to edit the

S

www.techradar.com/pro/linux

May 2021 LXF275     19


SUBSCRIBE Save money today!

SUBSCRIBE

Sign up today and get your

STM Portable

YOUR GIFT! WORTH £50 ut,

iss o Don’t m e now! ib r c s b su

wireless charger Product features

 harge your devices wirelessly C or via cables (USB-A or USB-C) Built-in kickstand enables you to keep your device in landscape or portrait orientation while it’s charging Suction cups secure PowerKick to your phone for consistent charging 10,000 mAh lithium polymer battery Fast charging capability

SUBSCRIBE NOW!

www.magazinesdirect.com/lin/stm21 Call: 0330 333 1113 and quote 97AK 24     LXF275 May 2021

www.linuxformat.com


Save money today! SUBSCRIBE 1

1,000s of DRM-free PDF back issues and articles! Get instant access back to issue 66 (May 2005) with tutorials, interviews, features and reviews. At linuxformat.com

! DON’T MISS s ar ye Now with 5 & r se U x nu of Li Developer issues

CHOOSE YOUR PACKAGE! ANNUAL PRINT EDITION

ANNUAL PRINT + DIGITAL EDITION

PLUS! Only 22%

£65.00

13 issues of Linux Format in print over 12 months by Direct Debit

NOT FROM THE UK?

Turn to page for more grea65 subscriber t deals!

DIGITAL EDITION

PLUS!

SAVE!

SAVE!

SAVE!

Only

60%

£70.00

13 issues of Linux Format over 12 months in print and digital by Direct Debit

(no gift)

Only

44%

£50.00

13 issues of Linux Format in digital by Direct Debit

Terms and conditions: Offer closes 30th June 2021. Offer open to new UK subscribers only. Pricing is guaranteed for the first 12 months and we will notify you in advance of any price changes. Please allow up to six weeks for delivery of your first subscription issue (up to eight weeks overseas). Your gift will be delivered separately within 60 days after your first payment has cleared. Gifts only available to subscribers on the UK mainland. Gift not available with a digital subscription. The full subscription rate is for 12 months (13 issues) and includes postage and packaging. If the magazine ordered changes frequency per annum, we will honour the number of issues paid for, not the term of the subscription. For full terms and conditions, visit www.magazinesdirect.com/terms. For enquiries please call: +44 (0) 330 333 1113. Lines are open Monday- Friday 9am- 5pm UK Time or e-mail: help@magazinesdirect.com. Calls to 0330 numbers will be charged at no more than a national landline call, and may be included in your phone provider’s call bundle.

www.techradar.com/pro/linux

1) Only available to www.magazinesdirect.com subscribers

PLUS: Exclusive access to the Linux Format subs area!

May 2021 LXF275     25


ROUNDUP Audio workstations WE COMPARE TONS OF STUFF SO YOU DON’T HAVE TO!

Roundup LMMS 1.2.2 Ardour 6.5 Qtractor 0.9.19 Waveform Pro 11.5 MusE 4.0

Michael Reed first installed Slackware back in 1996, but he started being a slacker long before that.

Audio workstations The Linux desktop has always had its share of music software. Michael Reed looks at the cream of the current Digital Audio Workstations crop. HOW WE TESTED… By and large, we’ve grabbed the latest, stable version of each Digital Audio Workstation (DAW). However, with music software on Linux, it’s quite often the case that the version in the official distribution repository is badly out of date. In these cases, it’s often worth checking out the latest beta, and that’s what we’ve done in the case of MusE and Ardour. We’ve installed each application and put it through its paces by using it for musical recording and composition tasks such as loading up multitrack projects and playing around with plug-ins. Having a bit of experience with the software in question is important because evaluating the feature list doesn’t give you an insight into what it’s like to try to create something with it, and music software is creative software. That said, sometimes you just have to live with a slightly bumpy workflow when trying to accomplish something that needs advanced features.

26     LXF275 May 2021

ot much music gets made these days without heavy use of computers, and the majority of new music that you hear on the radio was made 100 per cent ‘in the box’. That is, the sounds that you hear were either recorded into a computer and processed with software, or in the case of synthesiser sounds, entirely created inside a computer. Fortunately, Linux sports some highly professional software in this area. When recording at Abbey Road, The Beatles graduated from two- to four- and then eventually eight-track recording, and they used a special, echoey room with a microphone and a speaker to simulate

N

reverberation. With a reasonably modern computer and some of the Digital Audio Workstation (DAW) software that we’ll be looking at here, you can create almost unlimited numbers of tracks with dozens of effects plug-ins. It’s the lament of many technologically spoiled electronic musicians that there’s just too much amazing software out there with too many options to ever fully explore. Your biggest ‘cost’ with computer music creation on Linux is likely to be the time-cost of learning to use everything you have. We’re going to compare five top-notch pieces of software, but each of them has its own strengths and weaknesses...

www.linuxformat.com


Audio workstations ROUNDUP

Plugin support

There are many plugin standards in the computer audio world.

DSPA plugins (sans GUI, Linux-native effects plugins) are plentiful and highly useful. Thankfully, all of the software we’re looking at here supports them. This means that, if nothing else, you should have access to every basic effect type (reverb, chorus, compression and so on). LMMS comes with a suite of these effects as standard. LV2 is a Linux standard for both instruments and effects, with a GUI, and only Waveform Pro and LMMS don’t support it natively. However, for these DAWs there’s a workaround in the form of Carla (https://kx.studio/Applications:Carla), a GUI plugin host that is itself available as a plugin, although it’s an extra step in terms of convenience. VST2 is a standard for instrument and effects plugins. It’s common on Windows, but there’s a Linux native version and it may be the single most important standard, Linux patriotism aside. All of the DAWs we’re looking at support it. The Windows version of this format is the most common format for commercial plugins and there are good freeware ones, too. There’s some scope for using a compatibility bridge to run Windows versions of VST2 plugins. However, as with everything that makes use of WINE the results are never reliable, but it might be worth a try if you’re desperate. Ardour supports all the common formats and has a searchable plug-in manager with tags and categories. It’s also possible to save presets to the sidebar. Although LMMS can support other plugin formats through a built-in version of Carla, it comes with an integrated suite of

A

LMMS has its own plugin system for instruments, as well as various methods of loading more standard plugins.

instrument plugins that only work inside the DAW. These are great, although they tend to have a ‘chip tune’ sound to them and a rather small GUI. There’s also a built-in bridge for running Windows VST2 pluginins, but the above caveats apply to that, too. Qtractor doesn’t seem to make many concessions at all to plugin sandboxing. So you might have to add plugins one at a time and find the set that are stable inside the DAW. Along with VST2 and LADSPA format, Waveform Pro has its own internal format and uses this to deliver a massive coup of a built-in general sampler and drum sampler (samplers are underrepresented amongst Linux plugins) and some very good native synths.

VERDICT LMMS 7/10 WAVEFORM PRO 8/10 ARDOUR 8/10 MUSE 7/10 QTRACTOR 6/10 Waveform Pro supports key plugin types and comes with its own plugins, too.

Installation

How easy is it to install a DAW? aveform Pro is commercial software built on an open source framework. There’s no way of getting the source code of the actual application though, and it’s supplied as a .deb file. There is a feature-reduced free version (Waveform Free) that’s quite usable, however. All of the other DAWs that we’re looking at in this Roundup are open source. Often, you’ll have to build the latest version from source yourself. Now, building music applications and plug-ins from the source code tends to be on the medium part of the scale in terms of difficulty. Expect to spend some time finding the -dev versions of packages until the configuration script will complete and the actual build can begin. However, it tends to become easier as you compile more elements, because you grow better at it and the more features you add, the more essential libraries you’ll already have on your system. Ardour has a quirk in that the developers request a one-off donation or a subscription before enabling you to download the installable binary package for your operating system. It’s included in the official repository of distros such as Ubuntu, but that version tends to be considerably out of date. The workaround is to download the source code and build it yourself, which is completely free.

W

www.techradar.com/pro/linux

Building the latest version of Ardour 6.5.

The LMMS developers give access to the source code, but they also supply the latest stable version in the excellent AppImage format. So, you can run it without installing it, and in our test, this worked perfectly.

VERDICT LMMS 9/10 WAVEFORM PRO ARDOUR 7/10 MUSE QTRACTOR 8/10 Qtractor, MusE and LMMS are free in a traditional open source sense.

6/10 8/10

May 2021 LXF275     27


PLUG & PLAY Pi PROJECTS Jonni Bidwell with the help of Tom’s Hardware bring you the best in Raspberry Pi-based fun.

e do love the Raspberry Pi here at LXF Towers. And so do our digital colleagues at tomshardware.com, home to our Pi User’s Les Pounder. So with their help we’ve selected the finest Pi projects for you to enjoy. We’ve got something to inspire everyone, from retro gaming to home security, or even artificially intelligent object classification. The Raspberry Pi is the perfect device for learning Linux. Its official operating system is based on Debian Linux and there’s even a build of Ubuntu for it. The Pi 4 is powerful enough that it can happily replace

W

your desktop, and small enough that you can hide it behind the back of your monitor. If that’s not small enough, there’s always the Pi Zero, which is perfect for budding Internet of Things enthusiasts. And now there’s the Pi 400, where the keyboard is the computer. Of course, there’s no need to stop at these projects, or any others you might find online. We want you to boldly go exploring new physical computing frontiers, and we hope that this offering inspires just that. With a bit of practice and experience, you’ll be soldering up your own hardware, controlling robots and be limited only by your own imagination.

In association with

32     LXF275 May 2021

www.linuxformat.com


Raspberry Pi projects

Get your kit ready Prepare your USB cables, SD cards and a cup of tea. It’s Raspberry Pi project time… ith more than 34 million units sold, the Raspberry Pi is not only one of the world’s most popular computers – it’s also one of the most important. Originally designed to help kids learn about technology, this inexpensive, single-board system is the leading choice for makers, developers and hobbyists who want to do everything from building industrial robots to setting up retro arcade machines. Whether you’re aged eight or 80, if you love technology then the Raspberry Pi is made for you. And there are models from £5 to £65 to suit any budget. Whatever you do with your Raspberry Pi, you’re going to need an SD card with an operating system on it. The official Raspberry Pi OS (formerly Raspbian) is a popular choice and in many cases is a great start for many projects. It’s available in Desktop and Lite flavours at www.raspberrypi.org/software/operating-systems. There’s an official Raspberry Pi Imager utility that you can use to write this (or a selection of other OSes) to an SD card, or you can use the NOOBS tool. We favour Balena Etcher, which has the advantage of being able to handle compressed images.

W

Troubleshooting

Throughout this feature we’ll use a few different OS images, so we’ve made a handy guide to writing them below. If you run into difficulties, it’s always worth remembering that a faulty SD card might be to blame, so it’s worth trying a different one if things go wrong.

Cheap power supplies are another cause of errors. For older model Pis these are less of a problem, but the Pi 3 and above really do need a good 5.2V or they’ll be subject to CPU throttling and instability. The Pi 4 has switched its power input from micro USB to USB-C, and unfortunately this new port isn’t USB-C compliant. So if you use a fancy smart charger, it probably won’t power the device, and might possibly damage it. You won’t run into these issues if you use the official charger, so do that. If you’re opposed to that, we’re told that cheaper USB-C cables (ones that lack the smart charge chip) work fine. Cheaper chargers should work too, but they may not be so reliable, so caveat emptor. We’ve handpicked some fun, useful and interesting projects to showcase the tremendous scope of things that can be achieved with the humble Pi. From retro gaming to machine learning and Bitcoin, the possibilities are truly endless…

The latest incarnation of the Pi, the 400 model, embodies a Pi 4, also pictured, within a keyboard.

WRITING SD CARDS WITH ETCHER

1

Download Etcher

You’ll find Linux, macOS and Windows builds at https://etcher.io. On Linux it ships as a zipped AppImage, so once you’ve unzipped it, run chmod 755 on the file (or select Properties> Permissions and check the box to allow execution). You can now double-click the AppImage to run it (or do so from the CL).

www.techradar.com/pro/linux

2

Prepare the target

Insert your SD card, select the Flash from file option and navigate to your downloaded image. Click Select target and a menu will show available devices. Hard drives are hidden to prevent you from accidentally overwriting them. Select your SD card reader, and check to make sure there’s nothing important on the card.

3

Write the image

Hit Flash, enter your password and wait patiently for the progress bar. You’ll be offered the chance to write the same image again, which you might want to do if you’re preparing a fleet of Pi clones. But otherwise your SD card is ready for action. Move it from your PC to your Pi, power on and let the adventures begin!

May 2021 LXF275     33


IN-DEPTH Learning to program

A PARENT’S GUIDE TO PROGRAMMING Mike Bedford investigates which languages to consider if you want to help your children get a head-start in coding.

et’s start with a history lesson. The first high-level languages – which made their debut in the 1950s and included the likes of FORTRAN, ALGOL and COBOL – were designed as down-toearth tools with little thought given to education. This changed in 1964 with the introduction of BASIC. The language’s acronym hints at its nature, and its full name, Beginners All-Purpose Symbolic Instruction Code further emphasises its educational credentials. Indeed, BASIC was designed for use by students who had little appreciation of computers. It outlived many other

L

42     LXF275 May 2021

languages of that era, having been adopted for use in the home computers of the late 70s and the 80s and, in so doing, helped another generation learn to code. While BASIC remained largely unchallenged for several decades, if you want to help your children learn to code today then it’s not nearly as easy to choose a language. For a start, there are now several other languages that were designed exclusively, or almost so, for education. Furthermore, any discussion of beginners’ languages invariably brings up various languages which, although not originally intended for such, are considered to have a role in education.

We’re here to help parents to navigate their way through the language jungle to come to a view about which would be the best for their children to learn. First, we’ll introduce several languages that are normally considered as educational. For each, we’ll provide an introduction, describing the main features, cover the language’s pros and cons giving, and give some thought to the age range for which it’s appropriate. We’ll then move on to some of the general-purpose languages that are commonly used in an education setting. Here we’ll cover much the same ground, but with less introductory material

www.linuxformat.com


Learning to program IN-DEPTH because these languages will be much better understood than the specifically educational offerings. Throughout this article we consulted with Carrie Anne Philbin MBE, director of educator support at the Raspberry Pi Foundation, who also leads on the teach computing curriculum for the UK government-funded National Centre for Computing Education. Carrie Anne provided some useful insight into the various languages we consider here. Her opening remark is worthy of our attention. “I guess the most important information I can impart is that in education – both formal and nonformal – we do not start with a programming language”, she explained. “We always start with concepts, usually offline, before using tools that help learners make the concept more concrete in their minds.”

If you’ve not delved into educational languages before, it’s quite possible that you’ve not encountered blockbased languages. In passing, that term is entirely different to block-structured, the concept that’s key to structured programming and inherent in most of today’s programming languages. By way of contrast, a block-based language involves programming by dragging blocks – which we can think of as statements – from a palette onto the scripting area, and editing by manipulating the blocks in the scripting area. In other words, it needs very little in the way of free-form typing, the requirement being pretty much limited to editing things like the time in a wait block or the distance in a move block. Ease of use is also enhanced by virtue of the blocks being shaped somewhat like jigsaw pieces, an approach which slightly reduces the possibility of using a block in a nonsensical context. Scratch is our first block-based language – it’s free, multi-platform and open source, and it was developed by MIT’s Media Lab. Scratch is the block-based language primarily recommended by Carrie Anne Philbin, who suggested that it’s suitable until a transition to text-based languages, typically at age 11 to 13. She told us that, in the UK, concepts like sequence, selection and repetition are taught throughout the curriculum from the age of five, although for ages five to seven, the

closely related Scratch Jr. should be the language of choice. Scratch is used in formal education as part of the UK’s national curriculum, like the teach computing curriculum in England, as well as in non-formal education in homes, and in after school clubs like Code Club and CoderDojo. You can install Scratch locally or run it online at https://scratch.mit.edu. However, Scratch Jr. is only available as an app, intended for use on tablets, and is available for iPads and Android devices.

Its block-based approach might be unfamiliar to experienced programmers, but Scratch is highly recommended as a first language.

Blockly

Developed and hosted by Google, Blockly is our second block-based language and, although it’s sometimes thought of as such, it appears that its developers didn’t design it exclusively for educational use. This being the case, it’s probably not too surprising that it’s less basic than Scratch and, therefore, suitable for creating real applications. Indeed, while we trust that the statement doesn’t consider educational resources as toys, Google specifically say “it’s not a toy” and you can use it to “implement complex programming tasks”. Despite being developed by Google, Blockly is an open source project. According to Carrie Anne, Scratch dominates the block-based sector, so Blockly is used when it has to be, for example when programming in App Inventor (https://appinventor.mit.edu), or with the micro:bit

BEE-BOT AND BLUE-BOT For especially young children, even those for whom using a block-based language might be a step too far, Bee-Bot from www.ttsgroup.co.uk (£59.94) or their Blue-Bot (£83.94) might be of interest. Referred to as programmable floor robots, and typically used with floor mats that the robots can be programmed to navigate, these devices don’t have to be programmed via a programming language at all. Instead, they can be programmed by pressing buttons on the robot’s body. So, for example, if you press the Clear button, followed by Forward twice, Right turn, Forward and Go, the robot will move forward by 300mm (2 x 150mm), turn right by 90 degrees, and finally move forward by 150mm, with a short pause

www.techradar.com/pro/linux

between each step. While this certainly isn’t programming as we normally use the word, it is, of course, exactly that and it teaches some key principles. Turning to Blue-Bot, you can use this in exactly the same way as Bee-Bot, but there’s more. First, it’s transparent and so inquiring minds can get a feel for the hardware that controls it, but more importantly, it has a Bluetooth interface. This enables kids to progress to controlling the robot remotely from a handheld device, albeit only Windows, iPad or Android. To cut a long story short – and it does more – the free app makes it possible for children to create a program on screen via a very simple process, download it to Blue-Bot and execute it.

Bee-Bot offers young kids a fun way to program a robot by pressing the various buttons on its body.

May 2021 LXF275     43

CREDIT: https://publicdomainpictures.net/en/view-image. php?image=143737&picture=bee-bot, CC0 Public Domain

Scratch


TUTORIALS Code in Scratch

SCRATCH 3

Escape from the evil space squids! Captain Les Pounder of the USS Rentaprize has to evade the clutches of the evil space squids, but can he do the maths to escape the planet? lock-based coding is a great way to introduce the concepts of coding, via an easy-tounderstand mechanism. Blocks of code are stacked to create a flow, and if we encounter a mistake, we can easily pull the code apart to “debug”. Scratch is a popular block editor and in this tutorial we’ll create a space escape game, where our rocket is trapped on an alien world and we need to calculate the correct thrust for lift-off. If we get it wrong more than 10 times then the evil space squids will get us. Scratch 3 should come pre-installed on your Raspberry Pi OS image, but if it’s missing it can be installed from the main menu, under Preferences> Recommended Software. Scratch 3 is found in the Programming category; place a tick in the box and click Apply to install. Once installed,Scratch 3 can be found in the main menu under Programming. Open Scratch 3 . Before we write any code, let’s understand the interface. On the left are a series of colour-coded, categorised blocks of code. These blocks fall under categories that identify what they do: Motion to move a sprite, Looks to change their appearance, Control to create the logic for our code. The blocks are dragged into the centre area and then assembled into a project. In the top right of the screen we have the Stage – this is where our code will run, we see things move and we can interact with the code. Finally, in the bottom right is where all of the sprites, the characters in our game and the backdrop of our stage can be edited. We’ll start in the bottom right of the screen. The default sprite is Scratch the cat, but for this game we can delete the cat by clicking the trashcan icon in the top right of the sprite. If you look to the bottom right there’s a blue cat icon. Click this icon to add a new sprite. Search for rocket to use the sprite. Repeat this process and search for a sprite to act as our alien – we chose a squid. Just to the right is a blue icon that changes the look of the stage, a backdrop. Click the icon and select a space-themed backdrop. Make sure that your rocket sprite is selected, left click the sprite. We’ll start writing the code for our game. First we go to Events and drag When Green Flag Clicked . This will start our game when the green flag above the stage is clicked. Drag the rocket sprite so that it’s resting on the planet. Go to Motion and drag the Go

B

OUR EXPERT Les Pounder is associate editor at Tom’s Hardware and a freelance maker for hire. He blogs about his adventures and projects at bigl.es

YOU NEED Any Raspberry Pi Raspberry Pi OS Breadboard LED 330 Ohm resistor (OrangeOrange-BrownGold) 2 x femaleto-male jumper wires Code: https://github. com/lesp/ LXF275PiUserSpaceEscape/ archive/main. zip

48     LXF275 May 2021

Our finished game is a colourful and engaging way to test number skills and logic, but sadly it won’t get us into outer space.

to x: y: block so that it connects with the previous. Now when the game starts, the rocket returns to the planet. The next three blocks are all from Looks. The first is Switch costume – drag this and connect to the previous blocks. Change the costume to rocketship-e . Now drag two Say ___ for 2 seconds blocks and connect to the previous. In the first Say block, we tell the player that aliens are coming; in the next block we instruct the player to calculate the thrust for take-off.

Feeling gravity’s pull

Next we go to Variables and create three variables. The first is called gravity. Drag Set gravity to 0 and connect to the previous block. From operators drag the Pick random block and place it over the zero of the Set block. Change the numbers to be from one to 20. Create another variable, Acceleration and repeat Pick random but keep the numbers as one to 10. So now we have two variables that will generate random numbers for our game. The third variable is called force and for now we just need to create it – we’ll use it later. We need to give the player a clue to escape the planet. For this we use another Say block, but this time we go to Operators and drag a Join block over the text of Say . In the first blank of Join we say Sensors show the gravity is , and in the second we drag the gravity block from Variables. This block updates with a random value each time the game starts. Next we drag Set force from Variables and connect it to the previous. In our case force is a calculation, so we need to go to Operators and drag __ * __ into the Set block. Then

www.linuxformat.com


TUTORIALS Ohm measurement

PI PICO

The code

Get it from linuxformat. com/archives and part one!

New tricks for the Pico voltmeter Tam Hanna expands his basic Raspberry Pi Pico voltmeter to improve accuracy and add a resistor measurement capability.

T

Tam Hanna has developed, prototyped and manufactured hardware for various civil and military applications.

The current must flow

A resistor in series with the ADC input turned out to be a great way to make the multimeter more resilient. Connecting 5V to the ADC input would normally destroy the Raspberry Pi Pico, but our system survived even with the reduced value of the protection resistor. This, however, isn’t ideal. Practical multimeters regularly face hundreds or even thousands of volts in spurious inputs. Undoing this resistor value reduction would be beneficial for the longevity of the product, but we need to solve the problem of the ADC input current. To recap, our problem is caused by the current flowing into the ADC. It’s a piece of circuitry that performs a relatively complex computation. Logic dictates that this requires current. Solving this problem sounds easy in theory. If we could integrate another component that handles the output current of the ADC then all of our accuracy problems would vanish in the blink of a flashing LED. +3V

3

47K R3

ADC0

1 2 2 C1 1

1

LM324AN

100nF

2

4

Adding this circuit solves the current flow problem.

50     LXF275 May 2021

2

1 D1

R 1

2

+ 1 Sim1 -

2 I_CONST

+ 1 Sim2

R

2 R1

OUR EXPERT

If lsim1==lsim2, UR1==UR2

1N4148

R2

he voltmeter built at the end of the last issue introduced basic metrology. It suffered from low accuracy because the input current of the Raspberry Pi Pico caused high voltage losses across the protection resistor. In this follow-up instalment, we’ll use an operational amplifier to solve this problem. We’ll also add a mode for measuring resistances. Just as in last month’s issue, the goal of this tutorial isn’t to create the perfect tabletop multimeter. Instead, we want to demonstrate additional metrological concepts and inspire you to perform more experiments on your own.

-

1

2 I_CONST

A current source doesn’t care much about additional protective elements, such as diodes.

Fortunately, such a component exists in the form of an operational amplifier. An OpAmp is a highly versatile component that can be configured to act as a buffer. This configuration is commonly called a voltage buffer or voltage follower (see diagram, bottom-left). We need to make the necessary adjustments and perform a quick test. First, connect the output to the 3.3 voltage rail. This should trigger the low mode that worked perfectly before – unfortunately, we see a value of about 2V. This problem is caused by the presence of the operational amplifier. The next attempt involves connecting 5V – switching action doesn’t take place. This behaviour is caused by limitations of the OpAmp circuitry, because reel-to-reel operation (the output being able to reach both ground and the positive supply voltage) isn’t possible on the LM324. This commonly available and affordable operational amplifier states that about 1.5V of headroom must remain between the positive supply and the maximum voltage possible on the output pin. While we could address this problem by selecting a different operational amplifier, we’ll instead accept the limited range. This requires us to adjust the value for the lower switching limit, which now looks like this: if switchval > 37000 and low_on == 1: low_on = 0; mode_lovol.off() #CAVE SEQ! mode_hivol.on()

If you kept the circuit from last issue’s instalment, you can now proceed to connecting either 3.3V or 5V to the input. In both cases, switching will take place and the results returned will be accurate. Given that the current flowing through the protection resistor is now significantly smaller, we could return to

www.linuxformat.com


ALL YOUR DATABASE ARE BELONG TO US With the help of Patrick McFadin, the Datastax database guru, Jonni Bidwell gets a handle on the wherefore and why of Kubernetes. t the risk of overextending an already slightly dubious metaphor, Kubernetes (k8s) is fast becoming the operating system of the cloud. But how did we get to this point? And how do complicated projects migrate to it? We were lucky enough to chat to Patrick McFadin, VP of developer relations at Datastax and K8ssandra (an open source, cloud-native distribution of Apache Cassandra) developer. As far as projects go, they don’t come much more complicated than the Cassandra database, it powers everything from Facebook to Netflix to the New York Times. In the past, deploying Cassandra required an expensive team of eggheads and some

A

54     LXF275 May 2021

equally expensive infrastructure. Now, thanks to Astra – Datastax’s managed Cassandra offering – anyone can have a go. There’s even a free tier for those looking to get started. But as we’ll hear, the evolution continues and K8ssandra is at the cutting edge of it. Leveraging the power and ubiquity of Kubernetes, and using knowledge from Astra, it makes it possible for organisations to run Cassandra how and where they like. Be it in the cloud, on premises, or in some sort of hybrid arrangement. Using K8ssandra as a case study, we’ll discover why Kubernetes has become the de facto standard for cloud native computing, and why Cassandra is such a marvellous NoSQL database.

www.linuxformat.com


TUTORIALS TUTORIAL Prey

BYOBU

Terminal multiplexer Shashank Sharma is enthralled by screen multiplexers, and Byobu presents an elegant and efficient approach to managing multiple windows. erminal multiplexers such as Tmux and Screen are part of the daily routine for most command-line warriors. These amazing tools can be used to run multiple shell sessions within a single terminal, or display more than one application in a single window. But these tasks are beyond the capabilities of regular terminal emulators, and you must use multiplexers. Although multiplexers such as Screen have been around since the late 1980s, they aren’t exactly welcoming to new users or CLI novices. Byobu aims to bridge the gap by providing a wrapper over multiplexers such as Screen and Tmux, as well as add some features to appeal to even new users. Released under the GPLv3 Licence, Byobu started its journey as a wrapper for Screen, and was only available for Ubuntu. It has since adopted Tmux as the default underlying multiplexer and can be found in the software repositories of most popular distributions such as Debian, Fedora, Arch and Gentoo. If you’re running Debian or Ubuntu, or a derivative distribution, you can install Byobu with the sudo apt install byobu command. The sudi dnf install byobu command can similarly be used to install the project on RPM-based distributions. While it’s possible to build it from source, the project itself recommends using your distro’s package manager to install it.

T

OUR EXPERT Shashank Sharma is a trial lawyer in New Delhi and an avid Arch user. He’s always on the look-out for geeky memorabilia.

The Byobu configuration files are stored under the ~/.byobu or the ~/.config/byobu directory, depending on your distribution.

Byobu is a Japanese word that refers to a folding, decorative, multi-panel screen typically used as room dividers. It’s not a multiplexer itself, but an enhancement of the rather vanilla Screen and Tmux multiplexers. It aims to provide a simplified and more welcoming user interface to these robust utilities. Byobu also stands out from these tools because of its status bar, located at the bottom, which is used to display useful system information.

MAKING SENSE OF THE COPY MODE

1

Enter the copy mode

You can enter the copy mode in any Byobu screen or split pane by pressing Alt+PgUp. You’ll notice that you can now use the arrow keys to freely move through all the text on the current pane.

58     LXF275 May 2021

2

Select text

To select text, first press Space and then use the arrow keys to select all the text you’re interest in. You can select text across multiple lines. Next, press Enter to copy the text and exit the copy mode.

3

Paste selected text

You can paste the selection made from one pane to another pane on the same window, or onto a different window. Switch to the target pane/window and then press Alt+Insert.

www.linuxformat.com


TUTORIALS Video conferencing Credit: https://jitsi.org/jitsi-meet

JITSI

Run the perfect videoconference session Move over Zoom, Skype and all the rest – Nick Peers reveals how to set up your own public (and private) group video chats for free with Jitsi Meet. hen it comes to web conferencing, Jitsi is king of the hill. Don’t believe us? Back in LXF217 it won our video-conferencing group test hands down with five-star ratings across the board. Take a trip to the project’s home page at https://jitsi.org and you might be forgiven for thinking it’s a slightly fragmented project with a multitude of different tools, but ultimately Jitsi can be boiled down to two basic products. These days, Jitsi is focused on its web-based Jitsi Meet platform (https://jitsi.org/jitsi-meet), designed as an open-source and free alternative to the likes of Zoom. The other product is a throwback to Jitsi’s early existence as a multi-platform chat tool, but while Jitsi Desktop still has its own website (https://desktop.jitsi. org), development ceased four years ago.

W

OUR EXPERT Nick Peers wonders why more people don’t use Jitsi to stay in touch. He can’t praise it highly enough!

Navigating your conference room

1

2 3 4

5

6

Network status From this window you can get a quick-fire look at your connection from the icon – green is good, red is bad.

Conference tools From left to right: open the public chat window, set up screen sharing, and put up your hand to speak.

User thumbnails When you’re in full-screen view, click someone else’s thumbnail to focus on their video screen.

Core controls These enable you to quickly mute or unmute your microphone, turn your video on and off, or leave the conference.

Control meetings Roll your mouse over a participant’s thumbnail to reveal more options for managing them during the call.

Additional options Toggle tile view, invite more participants, set security options for the conference and access more options.

1

2

3

60     LXF275 May 2021

4

5

6

For this reason we’re going to concentrate on Jitsi Meet, but if you’re desperate to run Jitsi Desktop then check out the box (page 62) for the workaround required to get it up and running in your current distro.

Why Jitsi Meet?

The obvious reasons to choose Jitsi Meet over other web conference platforms are the fact it’s both open source – so completely transparent – and free for both personal and commercial use with support for up to 50 participants. All calls are encrypted, and the service provides all the tools you’d expect from any good web-conferencing platform: pop-up chat, the ability to share screens and even the opportunity to remotely control another participant’s desktop. It’s also easy to use – you can set up a meeting in seconds and share an invite with anyone who has a webcam and web browser. They don’t need to install any software, although free tools for desktop and mobile (Android and iOS) are available. Most people will be happy with Jitsi’s own servers, but if you’re looking for a video-conferencing platform you can host yourself, check out Jitsi VideoBridge, which can be deployed on your own server should you wish to host your own conferences for privacy, security or performance reasons. See the box (right) for details.

Quick-fire Jitsi

You can set up a quick Jitsi Meet conference for home or work purposes without having to install any software or set up an account. Open your web browser, go to https://meet.jit.si and then start typing the name of your meeting into the box. If you’re joining someone else’s meeting you can type the name of the meeting you were given, click the link they sent you or go directly to https://meet.jit.si/MeetingName to join. If you’re setting up a meeting from scratch then you’ll see a message appear as you type, warning you that the meeting room name is unsafe (in other words, easily guessable). This indicates how anyone will be able to join your meeting by entering it into the same box you did. We’ll reveal how to lock out unwanted ‘guests’ in a mo. Click Start Meeting. The first time you join, Jitsi will prompt you to give your microphone access, which you can do as a one-time thing or tick Remember this

www.linuxformat.com


BACK ISSUES

BACK ISSUES

MISSED ONE?

ISSUE 274 April 2021

ISSUE 273 March 2021

ISSUE 272 February 2021

Product code:

Product code:

Product code:

In the magazine Ramp up the security of your Linux system and make it an impregnable fortress. We also have practical fun with a Raspberry Pi Pico, explore the best window managers, code a Space Invaders-style game in Python, emulate 486 PCs, set up a rocksolid backup system, and more!

In the magazine Machines within machines are the order of the day as we show you how to run a VM. Discover how to construct a mind map, emulate a BBC Micro and we explain Active Directory. But it’s not all work: we review five game engines, connect a gamepad to a Pi and explore chess engines!

In the magazine Enjoy a fresh FOSS start with the latest version of Ubuntu, plus encode video more efficiently, remake Angry Birds in Python, emulate the Classic Apple Mac, transform your command line life, and get into astronomy with our review of star-gazing software.

DVD highlights Linux Mint 20.1 and Sparky 5.14.

DVD highlights Manjaro 20.2 and Gecko Linux 152.

DVD highlights Ubuntu 20.04 LTS (64-bit) and Bodhi Linux 5.1 (32- and 64-bit).

ISSUE 271 January 2021

ISSUE 270 December 2020

ISSUE 269 November 2020

Product code:

Product code:

Product code:

In the magazine Discover how you can get Linux up and running on your laptop and mobile devices! We also explore the chat tool Jami, provide essential tips for Firefox, use a Raspberry Pi as your daily driver and reveal how to become a package maintainer.

In the magazine Get up to speed on how hackers operate – then turn their tactics against them. We also show how to build a powerful Linux gaming system, put together an audio library, emulate the Atari ST and code a classic card game in Python. We also get our hands on the Raspberry Pi 400!

In the magazine We explain how to stream your videos, music and photos from a home server, review power-user distros, set up a livestreaming session, code Naughts and Crosses in Python, get creative with the Pi camera, and work collaboratively with NextCloud.

LXFDB0274

LXFDB0273

LXFDB0271

LXFDB0270

DVD highlights Pop!_OS 20.04 LTS and Fedora 33 (both 64-bit).

DVD highlight Kali Linux 2020.3 (64-bit only)

LXFDB0272

LXFDB0269

Digital download highlights 4MLinux 34 and Enso OS 0.4 distros (both 64-bit only).

To order, visit www.magazinesdirect.com Select Single Issues from the tab menu, then select Linux Format. Or call the back issues hotline on 0330 333 1113 or +44 (0)330 333 1113 for overseas orders.

Quote the Product code shown above and have your credit or debit card details ready 64     LXF275 May 2021

www.linuxformat.com


UK subs turn to p24

READING IN THE USA?

SUBSCRIBE!

Don’t wait for the latest issue to reach your local store – subscribe today and let Linux Format come straight to you. Faster, cheaper and with DRM-free archive access!

3 GREAT WAYS TO SUBSCRIBE

Print, digita l-only, and print+d igital bundles!

USA

From $132 For 13 issues

REST OF THE WORLD From $137 For 13 issues

EUROPE

From €100 For 13 issues

IT’S EASY TO SUBSCRIBE!

Click: www.magazinesdirect.com/linux-format

Call: +44 0330 333 1113 Lines open Monday-Friday, 9am-5pm, UK time

www.techradar.com/pro/linux

May 2021 LXF275     65


TUTORIALS Blender basics Credit: www.blender.org

Part One!

BLENDER

Getting started in 3D using Blender

Don’t miss next issue, subscribe on page 24!

Even if you’ve never used Blender before, Michael Reed will have you blending like a pro by the end of this tutorial. here’s no doubt about it, Blender is an amazing piece of software. It’s a complete 3D graphics creation application with sections for modelling and sculpting, texturing, animation, physics simulation and many other areas. Whatever area of 3D graphics and animation you’re interested in, once you have Blender installed, you have a professional-level application at your disposal. However, as good as Blender is, it’s necessarily complicated because 3D graphics is a complicated subject. We’re going to take you though the basics of modelling in Blender and give you an introduction to the program in general. When you first load the program up, you’re presented with a 3D cube and what seems like millions of icons,

T

OUR EXPERT Michael Reed has been exploring Linux since first trying his hand with Slackware in 1996.

Understand the Blender interface 5 6 3 2 1

Viewport. This is where you interact with objects and scenes within the 3D world.

1

Toolbar. Look closely, and you can see that it is, itself, subdivided into sections, starting with the selection tools at the top.

2

Outliner. This tool is handy for selecting objects if the viewport is cluttered. It’s recommended that you rename objects here as you go along to keep things organised.

3

66     LXF275 May 2021

4

Properties browser A series of icons down the left-hand side allows you to choose what world or object property you are editing.

4

Access your editors A series of tabs for switching between different editors. We’re going to stick with the Layout Editor for now.

5

Selection modes Face, edge, vertex selection mode and a series of drop-down menus followed by the shading mode icons..

6

menus and panels. So hang around while we stretch that cube, spin it around and make it dance for us.

Getting started

Let’s start our journey to becoming masters of the cube, and eventually, moving beyond it. When you first load up Blender, you’re in what’s called Object mode. This enables you to select and manipulate objects that you can see in the main area of the screen (called the Viewport). You can orbit the starting cube by moving the mouse around while holding down the middle button, and you can move around the scene by holding down Shift while moving the mouse. Zoom in and out by scrolling the mouse wheel. Let’s start doing things to the cube. Click the left mouse button on the cube to select it. It should now be outlined in yellow. Hover over the main toolbar (left-hand side of the viewport) until you find the Move icon and click it. You should see red, green and blue arrows coming out of the cube. Click and drag those arrows to move the cube around in each of the three axes. Try the tool below the Move tool, which is the Rotate tool. You should see red, green and blue circles around the cube. Click and drag those to rotate the cube in one of three axes. Next down the toolbar is the Scale icon, and it works in a similar way to the tools that we’ve already encountered. You can scale an object in one of three axes or scale the entire object at once by clicking and dragging on the white circle. Locate the Object Properties tab in the Properties Browser on the lower right-hand side of the screen. Note that as you change the position, rotation and scale of an object, the corresponding fields in the panel also change. It’s possible to become confused about which axis is which, or you can find yourself needing a rough idea about aspects such as size and position. In those cases, it’s often easiest to move things around, visually, in the Viewport, using the tools that we’ve discussed and then make the precise changes in the Object Properties tab afterwards. For example, if you wanted to turn an object on its side by rotating it 90 degrees, it’s often easiest to rotate

www.linuxformat.com


TUTORIALS Apple II emulation Credit: https://paleotronic.com/software/microm8

EMULATION

Les Pounder steps into his time machine and travels back to 1977, and not just to watch Star Wars on the big screen for once. he Apple II (often referred to as the Apple ][) was released in June 1977. It was one of the first successful mass-produced computers and Apple’s first personal computer aimed squarely at the consumer market. The hardware was designed primarily by Steve Wozniak and the case by Steve Jobs, who were the founders of Apple. In 1977 there were three machines vying for attention and inclusion in our lives: the Commodore PET 2001, TRS-80 and the Apple II. Powered by a MOS Technology 6502 CPU running at 1,023MHz and available with between four and 64KB of RAM, the Apple II spawned a series of machines from 1977 to 1992, ending with the Apple IIGS. Our favourite Apple II models in the series are the Apple IIc and the IIc Plus. You might be thinking, “Why?”. Well, these models both featured a built-in floppy disk drive (5.25- and 3.5-inch, respectively) and they were designed to be portable. They are by no means a laptop, but they took up very little space, and offered plenty of power and compatibility with software. The downside of these machines was that they lacked the space to install aftermarket add-ons. This didn’t stop some ingenious individuals, who managed to squeeze CPU accelerators and RAM upgrades into the casing without ruinning the clean aesthetics. In the UK, the Apple II didn’t make much of a dent (just me then? – Ed) in the saturated home computer scene. They were expensive compared to machines from Acorn, Sinclair and Commodore. But in the US the Apple II was adopted and loved by a generation of coders. Right now the cost of original Apple II hardware has skyrocketed and so to take our first steps with this great machine, we once again look to emulation and sometimes we find emulators in the strangest of places.

A typical 1977 Apple ][ setup, with a cassette player and monochrome monitor. The Apple ][ had plenty of space for upgrade cards

T

OUR EXPERT Les Pounder is associate editor at Tom’s Hardware and a freelance creative technologist. He blogs about his discoveries at bigl.es.

In Logo we used commands to move around the screen. For example, FORWARD and LEFT. But we can shorten these commands for ease of use. FD and LT perform the exact same functions.

70     LXF275 May 2021

Emulating an Apple ][

We start with the easiest means to emulate an Apple II, specifically Applesoft BASIC (www.calormen.com/ jsbasic), which uses JavaScript. It continues a trend

that we’ve seen with other retro computers, where they’re emulated on the web via JavaScript. Using this online emulator we can write code in BASIC and play some of the included demos, but we can’t run any real games or applications. For this we need an emulator, again written in JavaScript. Apple ][js (www.scullinsteel.com/apple2) comes with a series of applications and games accessible via the disk menu. Using this emulator we’re going to write a little code, but rather than use BASIC we’re going to use Logo, an educational programming language that was designed in 1967 by Wally Feurzeig, Seymour Papert, and Cynthia Solomon. Logo is a language to introduce concepts in a graphical and logical manner. Our goal is to draw objects upon the screen. To load Logo via the emulator click the Open Disk icon, then go to Programming and then click the Apple LOGO. Click Open to load the disk. From the start we are left at a blinking cursor, and from here we shall enter some commands to draw a square. Logo is a high-level language, and commands are written in English. Here is the command to draw a square 40 pixels in size. FORWARD 40 LEFT 90

www.linuxformat.com

CREDIT: FozzTexx, CC BY-SA 4.0, https://commons.wikimedia.org/wiki/File:Apple_II_typical_configuration_1977.png

Run an Apple II on your Linux system


THE BEST NEW OPEN SOURCE SOFTWARE ON THE PLANET

HotPicks

Alexander Tolstoy wheels out another set of carefully selected and tested open source applications

Photoflare Qytdl KWipe GabTag Fvid Draw.io Spech 0 A.D. Quadplay Guitar Sonice

IMAGE EDITOR

Photoflare Version: 1.6.6 Web: https://github. com/PhotoFlare/photoflare here are several categories of open source image editors. Usually we recommend Gimp for advanced users, Krita for digital artists and a whole variety of Paint-like tools for basic drawing, cropping and other common tasks. There’s certainly a gap in the market for a beginner-friendly photo editor that’s simple to use, but contains advanced options should you need them. If you’re struggling to think of a program that meets these requirements, then struggle no more as we take a look at Photoflare, a feature-rich open source image editor for Linux. Photoflare looks like an advanced image viewer, but it’s designed for editing images instead of merely browsing them, and is ideal for quick edits and enhancements. The main window’s toolbar has an extended set of utilities for changing brightness, contrast, hue, saturation, as well as flipping and rotating. Many more tools can be accessed from the Adjust and Filter sections of the program’s menu. Photoflare boasts a rich set of filters for making the image softer, sharper, fixing blemishes and dust, and also turning an ordinary photo into a painting. All filters are applied immediately, with no configuration windows. That makes Photoflare less advanced than Gimp, but also keeps things straightforward for those new to image editing. The program lacks layers functionality or a freehand selecting tool, but there are plenty of transformation options, a good colour tool and a wealth of filters and effects. The right-hand panel gives you access to some brushes, erasers and also the Stamp tool for cloning parts of the image. This makes Photoflare ideal for removing dust and scratches from old photos, and it’ll also do a great job at making underexposed or pale vacation shots look more vivid. The program sports a tabbed interfaces and enables you to keep several images open at once. There’s also the adjustable grid view, a text tool and even a built-in batch image processor. A superb offering in one compact package!

T

www.techradar.com/pro/linux

Photoflare contains a range of popular image-editing tools, and they’re are within easy reach.

Find your way around the Photoflare interface 1

2

3

5

4 Extended main toolbar From here you can access a range of colour modes, image and canvas resizing tools, a text tool and the automation feature.

1

More tools in the second row This is Photoflare’s Filterbar that you can turn on and off under View. Colour adjustment tools and some frequently used filters and effects can be found on this feature.

2

3

Organise your workflow with tabs Photoflare can keep lots of images open

and makes it possible to quickly switch from one to another. Don’t overlook the Status area Some filters take a long time to apply (depending on your system’s processing power). Keep an eye on this area to see when the Working status changes to Ready.

4

Essential painting tools at your fingertips Brushes, sprayers, fillers, smudge and the Clone Stamp tools can be accessed from this area.

5

May 2021 LXF275     75


TUTORIALS Photo effects Credit: www.gimp.org

GIMP

How to add special effects to photographs Fancy getting more creative in your photography? Mike Bedford offers some inspiration by introducing a few special effects for you to explore. he phrase “special effects” in photography can mean different things to different people. For some it means using an app on a phone to distort your selfie or, perhaps, to add a dog’s nose and tongue to your face. Others use PC software or smartphone apps to generate a range of pre-determined effects with a press of a button. However, there’s plenty of scope for applying effects using photo-editing software such as GIMP. This is our theme here but with one key caveat. Our emphasis is on effects that’ll exercise your grey matter rather more than, for example, just adjusting the Hue in an image’s HLS colour definition to introduce some bizarre colours. We don’t say that from a patronising or disapproving viewpoint but, quite simply, because if anything is so simple to achieve then it’s likely to be an overused effect. Indeed, the word “Photoshopped” has almost taken on a derogatory meaning in some quarters. So, having spelled out some of the effects we’re not going to cover, we ought to say just what we are covering, but that’s not easy to sum up because we’re using the scattergun approach. All our techniques can be effective, and by introducing such a diverse range of effects, we trust that your creative juices will start flowing. This tutorial won’t show you “how to do special effects photography”. However, we do provide you with sufficient guidance to reproduce our selected methods to provide a practical introduction to special effects, which you can explore in your own photo projects.

T

OUR EXPERT Mike Bedford loves all things related to technology, but as this introduction to special effects reveals, he’s also a fan of traditional photographic methods.

For generalpurpose fluorescence photography you need a moderately high-powered UV torch. You should buy a so-called near longwave UV light source because these are fairly cheap, and because medium- and shortwave UV (as required, for example, to get some minerals to fluoresce) is more harmful.

82     LXF275 May 2021

how quickly things are moving, you might need to leave a longer gap. Turning to the post-processing, load your three photos into GIMP as layers. As with all our instructions here, you could use any fully featured photo editor, but you’d have to figure out for yourself exactly how to perform each function that we describe. With the first photo selected, choose Components> Extract Component… from the Colors menu. Then, in the Extract Component dialog, select RGB Red as the Component before clicking OK. That layer will change to a black and white image, specifically one containing the red component of the colour photo. Now, in much the same way, extract the green component from the second photo and the blue component from the third. At this stage, while all three layers appear to be greyscale, the image will actually be RGB but, for the next step to work, it must genuinely be greyscale. To convert it, select Greyscale from Image>Mode. Finally,

Tricolour images

We struggled to come up with a descriptive name for our first effect, but it offers the interesting combination of a photo that mostly looks normal, but with moving objects “jazzed up”. This can be as subtle or as extreme as you like, depending mostly on the scene. In common with some of our other effects, this can’t be done just by post-processing, so you need to consider it when you take your photos. First, you need to take three identical photos of the same scene, so that means using a tripod. In our example, it didn’t matter how long we left between those three exposures, so we took them as rapidly as possible, so the lighting wouldn’t change between them. Depending on your subject, though, and in particular

Combining the red, green and blue channels of three shots of the same scene can produce subtly dramatic results, like this, or a much more startling effect.

www.linuxformat.com


CODING ACADEMY CODING ACADEMY First-person shooter

PYTHON

Immerse yourself in a first-person shooter Calvin Robinson looks to the iconic PC games Doom and Wolfenstein 3D for inspiration, in the latest instalment in his Python coding series. his issue we’re going to have a go at designing a first-person shooter. Wolfenstein 3D (1992) and Doom (1993) are arguably the most notable early successes of the three-dimensional firstperson shooter (FPS) genre. Both were released by id Software and designed by John Romero and John Carmack. These games featured the player seeing the game world through the eyes of a protagonist, roaming around levels looking for bad guys to eliminate. The graphics were, of course, pseudo-3D because true 3D graphics hardware hadn’t been invented yet. A lot of isomorphic project and trickery with sprites was used to create an illusion of three dimensions. We’re going to replicate that method. To get started, we’ll need a few things: Python, Pygame, and pvp-raycast engine. To install Python, open a Terminal and type sudo apt-get install python3 , followed by sudo apt-get install pip3 . Then you can install Pygame with pip3 install pygame . Finally, grab a copy of pvp-raycast by Raul Vieira from github with git clone https://github.com/raulzitoe/pvp-raycast . Pygame provides a lot of useful modules for drawing shapes and such, and Raul’s raycast engine includes all

T

OUR EXPERT Calvin Robinson is a former assistant principal and computer science teacher with and a degree in computer games design and programming

Our client and server will confirm the handshake and connection.

the fancy techniques for creating a multiplayer FPS game world, including textured raycasting with threaded sockets to handle data packets to/from multiple clients. PVP Raycast includes textured raycasting, which will enable projectiles and player sprite casting; scoreboards to monitor kills and deaths; wall shadowing for perceived depth; respawning; mini maps and a few additional handy features. It’s a great toolset to get us up and running promptly.

Import Python modules

Open up Python IDLE, hit File>New to create a new Script and begin by setting up the modules we’re going to import: import pygame from game import Game import constants as c import socket import time import pickle from sprite import Sprite import threading

Instead of setting up our constants at the top of our code, as we normally would, we’ve set up a module to keep them separate. In an additional file called

Our game is up and running, we can move around and shoot bullets.

88     LXF275 May 2021

Waiting for the opposition… otherwise known as moving targets!

www.linuxformat.com


CODING ACADEMY Directory trees

The code

PYTHON 3

Monitoring cycles in directory trees

Get it from linuxformat. com/archives and on the DVD

Mihalis Tsoukalos sips a cold Mythos in the Greek sun while working with dictionaries, os.walk(), files, symbolic links and directories. e’re going to use Python 3 to write Linux command line utilities that work with files and finds cycles in directory trees. The thinking here is that it’s faster to write in Python 3 than to use C. However, the tutorial presents some directions for developing the same utility in both C and Go. Let’s start by understanding the problem we’re trying to solve. The idea behind the utility is that with UNIX symbolic links it’s possible to create cycles (aka loops) in filesystems. Put simply, without symbolic links, there would be no cycles problem. This can perplex back-up software such as tar or utilities such as find and it can sometimes have security implications: for example, accessing files outside of the designated directory tree. FScycles.py, the utility we’ll be focusing on in this tutorial, attempts to inform us about such situations. The screenshot (below) shows a directory tree using the tree utility – it’s the ~/go directory where Go puts external packages. Because this directory doesn’t contain any symbolic links, create some using

W

OUR EXPERT Mihalis; Tsoukalos is a systems engineer and technical writer. He’s also the author of Go Systems Programming and Mastering Go. Contact him on @mactsouk.

$ ln -s ~/go/bin /tmp/link-to-directory $ ln -s ~/go/bin/golint ~/go/symb-link-to-file $ ln -s ~/go/src ~/symb-link-to-directory $ ln -s ~/tmp ~/go/symb-link-to-directory $ ln -s ~/go/src/github.com ~/go/symb-link-to-src $ ln -s /tmp ~/go/symb-link-to-tmp

Before getting into the meat of the subject let’s understand the various types of files that can be found in Linux. Remember that UNIX treats everything as a file, even hardware devices such as mice, keyboards and printers. Some of the files that can be found in Linux are regular files, directories, symbolic links, sockets, named pipes and block devices. Almost every programming language offers specialised functions or other ways for determining the type of file or path. What interests us are directories and symbolic links to directories. A symbolic link is a file that links to another directory or file by using its path. Although you can create symbolic links programmatically, you usually use the ln utility for this task. Finally, bear in mind that you need to have the necessary permissions to examine some system locations, files and directories. This can limit the output of all utilities that traverse directory trees, including the ones shown here.

Processing arguments

As we need to obtain user input, this section illustrates how to process command line arguments in Python 3. The important thing to remember is that command line arguments, including the name of the Python script, are kept in sys.argv. The path of the script can be accessed using sys.argv[0] . The following code excerpt from the cla.py script shows how to process command line arguments: for v in sys.argv[1:]: if isInteger(v): print("Integer:”, v) elif isFloat(v): print("Float:”, v)

Here’s our directory structure used for testing. It’s good practice to test system utilities before applying them on production machines.

92     LXF275 May 2021

This code processes all command line arguments apart from the first one, which is using a for loop. If the value is an integer, as checked by the user-defined isInteger() function, the script prints the relevant message. Similarly, isFloat() checks whether the given input is a valid floating point value. Because every integer is also a valid floating point number, the isInteger() check should be executed before isFloat() .

www.linuxformat.com


On the disc Discover the highlights from this month’s packed DVD!

START HERE USING THE LXFDVD

Using Linux for the first time can be very confusing. It’ll most likely be unlike anything that you’ve operated before, especially if you’re used to Microsoft Windows or Apple macOS. Generally our DVDs are designed to be run directly, which is to say that when you first power on your PC (or Mac, see below) it should ‘boot’ from the DVD – so before Windows or macOS even starts to load – with Linux running directly from the DVD. This trick is known as a Live Disc. It enables you to try out the various versions of Linux without having to install or change anything on your PC. Just remove the DVD, restart your PC and it’ll be exactly as you left it. While many systems will boot from a DVD when it finds one, many will not. See below for the standard process for enabling booting from a DVD on various desktops and laptop PCs. The alternative option is to locate the ISO file on the DVD and write this to your own USB thumb drive and attempt to run that. We recommend using Etcher from https://balena.io/etcher that’s available for Windows, macOS and Linux. Good luck!

ENCHANTING DISTRO

Mageia 8

64-bit

ageia’s roots go way back to Mandrake and Connectiva in the late 90s, which merged to become Mandriva in the 2000s, which Mageia became a fork of in 2010. If you remember any of Mageia’s pioneering predecessors, you’ll probably find their echoes in Mageia. Perhaps in the thoughtfully customised KDE desktop (others are available) or the undeniably useful Mageia Control Centre. Mageia has a friendly installer that will have your system ready in a matter of minutes. One slightly odd thing is that users aren’t set up until after you reboot into the new OS. Then you get to make accounts for root and a regular user. Mageia doesn’t use sudo to elevate privileges, so you might need to get used to using the root account if you’re coming from Ubuntu. There’s a wealth of software in Mageia’s repositories, which are divided into Core (free software), Non-free (proprietary software and drivers), Tainted (multimedia codecs) and Backports (for newer software). By default, all except Backports are enabled, but if you wanted to be closer to free software ideologies you could

M

Many PCs should boot automatically if they’re turned on with a disc in the drive. If not, many offer an early Boot Menu accessed by tapping a key while powering up from cold: F9 (HP), F12 (Dell, Lenovo), F8 (Amibios) or F11 (Award BIOS). Alternatively, use the BIOS/UEFI to adjust the boot order to start with the optical drive. Again, this is accessed by tapping a key during power up, usually Del but sometimes F1 or F2.

Mac owners: Hold the C key while powering on your system to boot from the disc.

96     LXF275 May 2021

Get code and DVD images at: www.linuxformat.com /archives

MIN SPECS: 2GB RAM, 20GB DISK

BOOT THE DISC

Some new UEFI PCs require access via Windows: holding Shift select its Restart option. If you’re still having problems using the DVD then visit www.linuxformat.com/dvdsupport

DOWNLOAD YOUR DVD

to so by unchecking boxes. This edition of Mageia uses Kernel 5.10 and Plasma 5.20, which are by no means old, but since this is a static release these numbers will start to seem low as the months pass. Also if you want to install Steam you’ll need to enable 32-bit repos. Mageia is an RPM-based distro and comes with the RPMdrake graphical package manager. You can also install Dnfdragora, or use Dnf (the modern replacement for Fedora’s Yum) directly. The initial install is fairly complete. We were pleased to see the Clementine music player included, and GIMP too, which many distros today are eschewing in favour of lighter alternatives. If you need help, just fire up the Konversation IRC client and it will connect straight to the #mageia channel. It’s been nearly two years since Mageia 7 was released, so we were keen to get the new release on to the DVD and our testing rigs. One thing we forgot about since back then, and which nearly derailed DVD-production, is that Mageia uses quite a funky boot process. As a result, we had to hack our own initrd image so that it would work with our boot menu. This worked for us and hopefully it works for you too. But if it doesn’t don’t worry, we have the ISO file intact in the Mageia/ folder on the DVD. So just write that to a USB stick (see our DVD support page) and then you can run Mageia as team Mageia intended. Mageia’s stylish Control Centre will enable you to configure everything to your heart’s content.

IMPORTANT NOTICE!

DEFECTIVE DISCS: For basic help on running the disc or in the unlikely event of your Linux Format coverdisc being in any way defective, please visit our support site at www.linuxformat.com/dvdsupport. Unfortunately, we’re unable to offer advice on using the applications, your hardware or the operating system itself.

www.linuxformat.com


AND MORE! SPACE-SAVER

THE LXF LIBRARY

MIN SPECS: 256MB RAM, 4GB DISK

AntiX 19.3 hat with all the DVD-palaver this month antiX very nearly didn’t make it onto the disc. Which would have been a great shame, not just because of efficient DVD usage, but because it’s probably our favourite distribution for older machines. It’s based on Debian stock so it’s not going to break, and it will be supported until 2024, by which time there’s a good chance your 32-bit hardware will have clocked its last CPU-cycle. If you don’t like systemd, then good news! AntiX still uses SysV-init scripts, or you can switch to the Runit init system. The default desktop uses the ultralight IceWM window manager together with Rox (which draws icons, the panel and the desktop background). You’ll see system stats gloriously displayed on the desktop via Conky, and you’ll probably note the initial memory footprint is ridiculously low – around 100MB. Of course, just because it’s so light doesn’t mean you have to use it on old systems. A 64-bit release is available, so if you’re fed up of Gnome and KDE eating all your memory you might find antiX pleasantly refreshing. The desktop uses bold icons, so lightweight doesn’t mean lacking in style. There are also a choice of other window managers, Fluxbox and JWM, if you want

W

32-bit something a little different. It also comes with tools for mastering your own custom antiXspins. That’s ideal if you want to make a live USB rescue medium. There are also tools for editing window manager and Conky settings, which is great because configuring these things by hand is fairly daunting for new users. Antix also makes it easy to switch between window/desktop managers, so if you’d rather use SpaceFM over Rox, it’s just a couple of cascading menus and clicks away. Of course, you’re not going to find the user friendliness of modern desktops here, but there are utilities for setting up network shares and hardware/drivers and an enthusiastic community too. Because of space we’ve only included the base edition here (which you’ll see is a featherweight 450MB), but you’ll find any software you need in the Debian repositories. This release, dubbed Manolis Glezos, is actually from back in October, but since it’s based on Debian stable this is neither here nor there – it’s not a distro for those seeking the latest packages. If you are hoping to run this on very old hardware, then you’ll be pleased to hear that antiX doesn’t require a CPU with PAE (Physical Address Extension), so you might even get it running on your 486.

 dvanced Bash A Scripting Guide Go further with shell scripting.  ash Guide for Beginners B Get to grips with the basics of Bash scripting.  ourne Shell Scripting B First steps in shell scripting.  he Cathedral and T the Bazaar Eric S. Raymond’s classic text explains the advantages of open development.  he Debian Book T Essential guide for sysadmins.  ive Into Python D Everything you need to know. Introduction to Linux A handy guide full of pointers for new Linux users.  inux Dictionary L The A-Z of everything to do with Linux.  inux Kernel in a Nutshell L An introduction to the kernel written by master hacker Greg Kroah-Hartman.  he Linux System T Administrator’s Guide Take control of your system.  ools Summary T Overview of GNU tools.  NU Emacs Manual G Six hundred pages of essential information!  roducing Open P Source Software Everything you need to know.  rogramming from P the Ground Up Take your first steps.

Not only does antiX make it easy to install the Nvidia driver, you can also use Windows wireless drivers via ndiswrapper.

NEW TO LINUX? START HERE…

Never used a Linux before? Here are some handy resources: Read our quick-install guide http://bit.ly/LXFinstall Looking for an answer? https://askubuntu.com Want to delve more deeply? https://linuxjourney.com

www.techradar.com/pro/linux

May 2021 LXF275     97


9000

ESCAPE GOOGLE PHOTOS

Google is stopping free photo storage in June 2021. We explore the open source options for photo backup.

The #1 open source mag Future Publishing Limited, Quay House, The Ambury, Bath, BA1 1UA Email linuxformat@futurenet.com EDITORIAL Editor Neil Mohr LateLateLate editor Jonni Bidwell Art editor Efrain Hernandez-Mendoza Operations editor Cliff Hope Group editor in chief Graham Barlow Senior art editor Jo Gulliver Editorial contributors Mike Bedford, Neil Bothwick, Tam Hanna, Matthew Hanson, Jon Masters, Nick Peers, Les Pounder, Michael Reed, Calvin Robinson, Mayank Sharma, Shashank Sharma, Zak Storey, Mihalis Tsoukalous, Alexander Tolstoy Cover illustration magictorch.com Raspberry Pi is a trademark of the Raspberry Pi Foundation. Tux credit: Larry Ewing (lewing@isc.tamu.edu) and The GIMP.

ADVERTISING Media packs are available on request Commercial sales director Clare Dove clare.dove@futurenet.com Senior advertising manager Lara Jaggon lara.jaggon@futurenet.com Head of commercial – Technology Dave Randall dave.randall@futurenet.com Account director Andrew Tilbury andrew.tilbury@futurenet.com INTERNATIONAL LICENSING Linux Format is available for licensing. Contact the Licensing team to discuss partnership opportunities. Head of Print Licensing Rachel Shaw licensing@futurenet.com NEW SUBSCRIPTIONS & BACK ISSUES Web www.magazinesdirect.com UK 0330 333 1113 World +44 (0) 330 333 1113 EXISTING SUBSCRIPTIONS Web www.mymagazine.co.uk UK 0330 333 4333 World +44 (0) 330 333 4333 CIRCULATION Head of newstrade Tim Mathers PRODUCTION AND DISTRIBUTION Head of production UK & US Mark Constance Production project manager Clare Scott Senior ad production manager Jo Crosby Digital editions controller Jason Hudson

LXF276

will be on sale Tuesday 4 May 2021

Easy server admin

We’re lazy around here, so there’s nothing more we like than a good ol’ GUI-based administration console.

Better browsing

Still using Internet Explorer? Of course you’re not, so we look at the big-name, full-fat web browsers to power your daily browsing.

You too can Gentoo

It’s the fastest of penguins… we show you how to get to grips with the compile-it-yourself distro and reap the speed rewards.

THE MANAGEMENT Chief audience and ecommerce officer Aaron Asadi MD, tech specialist Keith Walker Head of art & design Rodney Dive Commercial finance director Dan Jotcham Printed by Wyndeham Peterborough, Storey’s Bar Road, Peterborough, Cambridgeshire, PE1 5YS Distributed by Marketforce, 5 Churchill Place, Canary Wharf, London, E14 5HU www.marketforce.co.uk Tel: 0203 787 9001 Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. GNU/Linux is abbreviated to Linux throughout for brevity. Where applicable code printed in this magazine is licensed under the GNU GPL v2 or later. See www.gnu. org/copyleft/gpl.html. All copyrights and trademarks are recognised and respected. Disclaimer All contents © 2021 Future Publishing Limited or published under licence. All rights reserved. No part of this magazine may be used, stored, transmitted or reproduced in any way without the prior written permission of the publisher. Future Publishing Limited (company number 2008885) is registered in England and Wales. Registered office: Quay House, The Ambury, Bath BA1 1UA. All information contained in this publication is for information only and is, as far as we are aware, correct at the time of going to press. Future cannot accept any responsibility for errors or inaccuracies in such information. You are advised to contact manufacturers and retailers directly with regard to the price of products/ services referred to in this publication. Apps and websites mentioned in this publication are not under our control. We are not responsible for their contents or any other changes or updates to them. This magazine is fully independent and not affiliated in any way with the companies mentioned herein. If you submit material to us, you warrant that you own the material and/or have the necessary rights/permissions to supply the material and you automatically grant Future and its licensees a licence to publish your submission in whole or in part in any/all issues and/or editions of publications, in any format published worldwide and on associated websites, social media channels and associated products. Any material you submit is sent at your own risk and, although every care is taken, neither Future nor its employees, agents, subcontractors or licensees shall be liable for loss or damage. We assume all unsolicited material is for publication unless otherwise stated, and reserve the right to edit, amend, adapt all submissions. All contents in this magazine are used at your own risk. We accept no liability for any loss of data or damage to your systems, peripherals or software through the use of any guide. Notes: the font server was entirely broken by the new OpenType Benton Sans, which was fun. We are committed to only using magazine paper which is derived from responsibly managed, certified forestry and chlorinefree manufacture. The paper in this magazine was sourced and produced from sustainable managed forests, conforming to strict environmental and socioeconomic standards. The manufacturing paper mill and printer hold full FSC and PEFC certification and accreditation.

Future is an award-winning international media group and leading digital business. We reach more than 57 million international consumers a month and create world-class content and advertising solutions for passionate consumers online, on tablet & smartphone and in print.

OpenStreetMaps

We revisit the awesome, crowd-powered, open source world-mapping project, which has passed one million edits. Contents of future issues subject to change – we may be still browsing photos from 2001.

98     LXF275 May 2021

Future plc is a public company quoted on the London Stock Exchange (symbol: FUTR) www.futureplc.com

Chief executive Zillah Byng-Thorne Non-executive chairman Richard Huntingford Chief financial officer Rachel Addison Tel +44 (0)1225 442244

Profile for Future PLC

Linux Format 275 (Sampler)  

You can subscribe to this magazine @ www.magazinesdirect.com

Linux Format 275 (Sampler)  

You can subscribe to this magazine @ www.magazinesdirect.com