Language Selection

English French German Italian Portuguese Spanish

January 2020

Programming: IDEs, Libvirt, Lua, Rust and Python

Filed under
Development
  • Development corner: IDEs and tools that can make your coding more productive

    Every craft needs craftsmen, every craftsman needs tools. If you make a living developing code, you want a friendly ecosystem to help you achieve best results from your work. Good development software will allow you to achieve higher productivity and precision, leading to a product that is more effective and with fewer bugs. Finding the right tools is an important part of this equation. Let’s see if we can assist in the search.

  • Libvirt: adoption of GLib library to replace GNULIB & home grown code

    These problems are common to many applications / libraries that are written in C and thus there are a number of libraries that attempt to provide a high level “standard library”. The GLib library is one such effort from the GNOME project developers that has long been appealing. Some of libvirt’s internal APIs are inspired by those present in GLib, and it has been used by QEMU for a long time too. What prevented libvirt from using GLib in the past was the desire to catch, report and handle OOM errors. With the switch to aborting on OOM, the only blocker to use of GLib was eliminated.

    The decision was thus made for libvirt to adopt the GLib library in the latter part of 2019. From the POV of application developers nothing will change in libvirt. The usage of GLib is purely internal, and so doesn’t leak into public API exposed from libvirt.so, which is remains compatible with what came before. In the case of QEMU/KVM hosts at least, there is also no change in what must be installed on hosts, since GLib was already a dependency of QEMU for many years. This will ultimately be a net win, as using GLib will eliminate other code in libvirt, reducing the installation footprint on aggregate between libvirt and QEMU.

    With a large codebase such as libvirt’s, adopting GLib is a not as quick as flicking a switch. Some key pieces of libvirt functionality have been ported to use GLib APIs completely, while in other cases the work is going to be an incremental ongoing effort over a long time. This offers plenty of opportunities for new contributors to jump in and make useful changes which are fairly easily understood & straightforward to implement.

  • Excellent Free Tutorials to Learn Lua

    Lua is a lightweight, small, compact, and fast programming language designed as an embeddable scripting language. This cross-platform interpreted language has a simple syntax with powerful data description constructs. It has automatic memory management and incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. Lua tries to help you solve problems with only hundreds of lines, or even less. To achieve this aim, Lua relies on extensibility.

    In the popularity stakes, Lua lags behind say Python, Perl, or Ruby for scripting purposes. As a barometer of its popularity, Lua is currently ranked in 41st place on the TIOBE Index (January 2020).

    Lua is not designed to develop standalone software. But Lua excels as a secondary language. Witness Lua cropping up in kernels, tools, and games. Lua was designed, from the beginning, to be integrated with software written in C and other conventional languages. But it’s also used as a standalone language.

    This language is free software distributed under the terms of the MIT license. Lua’s developers consist of a team at PUC-Rio, the Pontifical Catholic University of Rio de Janeiro in Brazil. The language has been in development for 26 years.

  • This Week In Rust: This Week in Rust 323

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

  • Random Forests (and Extremely) in Python with scikit-learn

    In this guest post, you will learn by example how to do two popular machine learning techniques called random forest and extremely random forests. In fact, this post is an excerpt (adapted to the blog format) from the forthcoming Artificial Intelligence with Python – Second Edition: Your Complete Guide to Building Intelligent Apps using Python 3.x and TensorFlow 2. Now, before you will learn how to carry out random forests in Python with scikit-learn, you will find some brief information about the book.

  • Wing Python IDE 7.2.1 - January 29, 2020

    Wing 7.2.1 fixes debug process group termination, avoids failures seen when pasting some Python code, prevents crashing in vi browse mode when the first line of the file is blank, and fixes some other usability issues.

  • A tiny Python called Snek

    Keith Packard is no stranger to the linux.conf.au stage; he has spoken on a wide variety of topics since he started going to the conference in 2004 (which was held in Adelaide, where organizers apparently had a lot of ice cream for attendees). One of his talks at this year's conference was on an education-focused project that he has been working on for around a year: a version of Python called "Snek" targeting embedded processors. He gave a look at some of the history of his work with 10-12 year-old students that led to the development of Snek as well as some plans for the language—and hardware to run it on—moving forward.

Meet Zorin Grid: A Slick Linux Desktop Management Tool For Schools And Businesses

Filed under
Linux

If you’re a decision maker for a business, school or organization that’s been tempted to migrate your PCs to Linux now that free support has ended for Windows 7, you’ve probably identified some pain points. Desktop Linux distributions like Zorin OS are fast, secure and feature an attractive desktop that feels familiar. But you need a solution for centrally managing, securing and monitoring those PCs. You also need cross-platform software that fills the void when you make the switch permanent. That’s exactly where the newly announced Zorin Grid plans to enter the picture later this year.

Read more

Kernel: LWN Article (Outside Paywall Today) and Remembering the LAN (Way Before Wireguard)

Filed under
Linux
  • process_madvise(), pidfd capabilities, and the revenge of the PIDs

    Once upon a time, there were few ways for one process to operate upon another after its creation; sending signals and ptrace() were about it. In recent years, interest in providing ways for processes to control others has been on the increase, and the kernel's process-management API has been expanded accordingly. Along these lines, the process_madvise() system call has been proposed as a way for one process to influence how memory management is done in another. There is a new process_madvise() series which is interesting in its own right, but this series has also raised a couple of questions about how process management should be improved in general.
    The existing madvise() system call allows a process to make suggestions to the kernel about how its address space should be managed. The 5.4 kernel saw a couple of new types of advice that could be provided with madvise(): MADV_COLD and MADV_PAGEOUT. The former requests that the kernel place the indicated range of pages onto the inactive list, essentially saying that they have not been used in a long time. Those pages will thus be among the first considered for reclaim if the kernel needs memory for other purposes. MADV_PAGEOUT, instead, is a stronger statement that the indicated pages are no longer needed; it will cause them to be reclaimed immediately.

    These new requests are useful for processes that know what their future access patterns will be. But it seems that in certain environments — Android, in particular — processes lack that knowledge, but the management system does know when certain memory ranges are no longer needed. The bulk of a process's address space could be marked as MADV_COLD when that process is moved out of the foreground, for example. In such settings, letting one process call madvise() on behalf of another helps the system as a whole make the best use of its memory resources. That is the purpose behind the process_madvise() proposal.

  • KRSI and proprietary BPF programs

    The "kernel runtime security instrumentation" (or KRSI) patch set enables the attachment of BPF programs to every security hook in the kernel; LWN covered this work in December. That article focused on ABI issues, but it deferred another potential problem to our 2020 predictions: the possibility that vendors could start shipping proprietary BPF programs for use with frameworks like KRSI. Other developers did pick up on the possibility that KRSI could be abused this way, though, leading to a discussion on whether KRSI should continue to allow the loading of BPF programs that do not carry a GPL-compatible license.
    It may be surprising to some that the kernel, while allowing BPF programs to declare their license, is entirely happy to load programs that have a proprietary license. This behavior, though, is consistent with how the kernel handles loadable modules: any module can be loaded, but modules without a GPL-compatible license will not have access to many kernel symbols (any that are exported with EXPORT_SYMBOL_GPL()). BPF programs interact with the kernel through special "helper functions", each of which must be explicitly exported; these, too, can have a "GPL only" marking on them. In current kernels, about 25% of the defined helpers are restricted to GPL-licensed code.

  • Scheduling for the Android display pipeline

    The default CPU-frequency governor used by Android is schedutil, which relies on the CPU utilization of the runnable tasks to select the frequency of the CPU they execute on: the higher the utilization, the higher the frequency of the CPU when they are runnable. This governor fits so well with the needs of mobile Android devices that, in Android, it also takes care of the SCHED_RT tasks, which are normally run at the maximum frequency in mainline Linux kernels.

    Schedutil chooses the lowest frequency sufficient not to overload the system, based on the measurement of the system utilization. This solution works well when tasks are independent and are able to run in parallel. But, whenever there is a dependency — tasks that are blocked on the completion of others — the single-task utilization accounting mechanism is no longer sufficient to define the requirements of the whole task set.

    For example, in the scenario shown below, schedutil sees that RenderThread only requires 50% of a CPU's capacity, so it sets the CPU frequency to 50% of the maximum. But RenderThread cannot run until the UI thread has done its work — the two tasks cannot run in parallel — so it misses its deadline.

  • Control-flow integrity for the kernel

    Control-flow integrity (CFI) is a technique used to reduce the ability to redirect the execution of a program's code in attacker-specified ways. The Clang compiler has some features that can assist in maintaining control-flow integrity, which have been applied to the Android kernel. Kees Cook gave a talk about CFI for the Linux kernel at the recently concluded linux.conf.au in Gold Coast, Australia.

    Cook said that he thinks about CFI as a way to reduce the attack, or exploit, surface of the kernel. Most compromises of the kernel involve an attacker gaining execution control, typically using some kind of write flaw to change system memory. These write flaws come in many flavors, generally with some restrictions (e.g. can only write a single zero or only a set of fixed byte values), but in the worst case, they can be a "write anything anywhere at any time" flaw. The latter, thankfully, is relatively rare.

  • Remembering the LAN

    We can have the LAN-like experience of the 90's back again, and we can add the best parts of the 21st century internet. A safe small space of people we trust, where we can program away from the prying eyes of the multi-billion-person internet. Where the outright villainous will be kept at bay by good identity services and good crypto.

    The broader concept of virtualizing networks has existed forever: the Virtual Private Network. New protocols make VPNs better than before, Wireguard is pioneering easy and efficient tunneling between peers. Marry the VPN to identity, and make it work anywhere, and you can have a virtual 90s-style LAN made up of all your 21st century devices. Let the internet be the dumb pipe, let your endpoints determine who they will talk to based on the person at the other end.

Systemd-Homed Merged As A Fundamental Change To Linux Home Directories

Filed under
Linux

Systemd-homed has been merged as the latest (optional) fundamental change to Linux distributions in how home directories are handled.

Systemd-homed makes it easier to support migratable home directories, more self containment within home directories, better password and encryption handling, and other modern Linux home directory features.

Some of the design objectives for systemd-homed are outlined in the documentation with support for LUKS encrypted volumes, mounting home directories from a CIFS server, FSCRYPT encryption, Btrfs sub-volume handling, and making use of JSON-formatted user records.

Read more

Dino is a Decent XMPP Client for Linux Desktops

And it’s this service that Dino, a new desktop XMPP client for Linux desktops, makes use of.

A small, lightweight chat app, Dino is designed with security, privacy and openness at its core, all presented in a clean, straight-forward and user-friendly interface.

Dino is fully functional with other XMPP/Jabber clients and servers (i.e. you don’t need to be using the same app to chat) and it supports end-to-end encryption using OMEMO or OpenPGP.

Read more

FSFellowship releases sticker set 1.0 for download

Filed under
GNU
Google

FSFellowship is releasing our first stickers. These are licensed CC-BY for you to use as you see fit.

You can download an A4 PDF with four stickers to a page and then print it onto A4 label paper in your printer.

These stickers were produced with free software using LibreOffice. You can download the LibreOffice document here.

Read more

Games: Raspberry Pi, Dead Cells, ULTRAKILL, System Shock, Battle Axe, Iron Danger

Filed under
Gaming
  • Build your own first-person shooter in Unity

    Raspberry Pi Press is back with a new publication: this time, it’s Wireframe’s time to shine, with Build Your Own First-Person Shooter in Unity.

  • The Bad Seed DLC releases for Dead Cells on February 11

    One of my absolute favourite action platformers, the "RogueVania" game Dead Cells is getting a first DLC with The Bad Seed and it now has a release date of February 11.

    The Bad Seed should keep runs feeling fresh, with two new early-game biomes mixed with a bunch of new enemies and weapons plus "some unseen mechanics and a giant boss". Sounds like everything the game needs once you've played multiple tens of hours in it.

  • ULTRAKILL - a fast-paced and rather violent FPS has a Steam page up and new demo coming soon

    Retro first-person shooters as a genre and theme are very much back in action, I am super happy about this and ULTRAKILL is one that needs to be in your sights.

    Fusing together elements from the classic like Quake, with modern touches from newer games and fast-paced character action from the likes of Devil May Cry it's definitely got a unique feel to it.

    It currently has an older demo up on itch.io which we briefly covered before. Now, it has a Steam page up as it moves closer to a wider Early Access release and they've announced that a new demo will be coming soon.

  • Nightdive Studios have released some extended System Shock footage

    Excited for the System Shock remake? I certainly am! Nightdive Studios recently sent a special demo to backers but to keep the hype going for everyone else they've also doing a long new video.

    This is not the same as the demo recently released to the public, this is a bigger version that Nightdive will continue to update and backers keep hold of it until the game releases. You might want a coffee ready and the video is over an hour long but it's a good look into what to expect from this hotly anticipated System Shock reboot.

  • Battle Axe has some awesome pixel-art with gameplay inspired by Gauntlet and Golden Axe

    Currently crowdfunding on Kickstarter, Battle Axe looks impressive. A retro-themed pixel-art action adventure taking inspiration from the likes of Golden Axe, Dungeons & Dragons: Shadow over Mystara, and Knights Of The Round.

    It will be launching with Linux support, as clearly confirmed on the campaign page.

  • Tactical combat with time manipulation arrives with Iron Danger on March 25

    Today, Daedalic Entertainment and Action Squad Studios announced that their tactical combat game Iron Danger will release on March 25.

    An exciting sounding game with time manipulation mechanics and it looks pretty darn good visually too. The setting sounds equally delightful, with a mixture of nordic mythology, steampunk and tech noir. We covered this briefly back in September last year, where the developer confirmed Linux would happen. With the announcement today, Daedalic confirmed very clearly on Twitter that Linux support is in.

exGENT 2020 Linux Distro Makes Gentoo Fun to Use with the LXQt Desktop

Filed under
Linux
Gentoo

Arne Exton’s exGENT GNU/Linux distribution aims to continue the tradition of Gentoo-based live distros with a new release that puts the latest LXQt 0.14.1 desktop environment in the spotlight.

We all know by now that Gentoo is one of the hardest Linux-based operating systems to install due to packages needing to be compiled from sources locally. But the good thing about Gentoo is that it doesn’t uses a one-size fits all approach, which mens that it can be fully optimized for specific hardware.

Newcomers who want to try Gentoo Linux on their personal computer have a hard time due to the lack of Gentoo-based live distributions. Here’s where exGENT Linux comes into play, promising to offer users an up-to-date Gentoo-based live system that can be installed in a few minutes.

Read more

More in Tux Machines

Murena smartphones and cloud will protect our privacy

More than ever the market is demanding a new approach for digital products: more and more people around the world want something different, more ethical, more sustainable, with real guarantees about personal data protection. Four years ago, I wanted to break free from Google and Apple, and therefore we created the “eelo” project, with the simple idea that a different mobile operating system and associated cloud services like email or cloud storage could be possible in this world. Followed by an amazing community of supporters, contributors and now users, the project progressed quickly, and became a reality by the end of 2018. The same year, we had to suddenly abandon our initial project name for a temporary name: /e/. Sometimes, temporary things last longer than expected. And despite being hard to pronounce, difficult to search, and largely criticized by many people, /e/ as a brand name had the benefit to be very singular and helped us appear different. In the end it conveyed the idea that we’re doing something special. […] Nevertheless, as we are reaching more and more people and progressively catching interested from a mainstream audience, we have to introduce a new, strong brand, easier to use, easier to refer to and easier to share with people. The goal of this brand is to have a strong name to call our products, intended to be used by a large number of users in many different countries and cultures. It took some time, since we had many different candidates, both from internal suggestions and from our community. We wanted something that would both convey our project’s values, and that could be within the same lineage of our initial project name. We also had to secure this new brand making sure it was not already in use in the same field of activity, and by entering a long trademark registration processes. Read more

Audiocasts/Shows: Linux Action News, mintcast, Audacity, and Starlink

  • Linux Action News 212

    Major performance milestones are being hit with new code inbound for Linux, Plasma and GNOME desktops are set to run Wayland on NVIDIA's binary driver, and why the SFC's new GPL fight could have implications for you.

  • mintcast 372.5 – The Tablet Chronicles

    1:22 Linux Innards 36:00 Vibrations from the Ether 52:41 Announcements & Outro In our Innards section, tablets And finally, the feedback and a couple of suggestions

  • Video Editing with Linux: The Most Important Part of a Video

    Next in our video editing series for the Librem 14, Gardiner Bryant explains why audio is critical in video production, capturing good sound, and post-processing using Audacity, an open source sound editing solution. This video will help those looking to level up their audio and overall production.

  • Starlink's Linux Secrets | LINUX Unplugged 429

    We attempt a live production over Starlink, and dig into the secrets of this giant Linux network in space.

today's howtos

  • How to install MelonDS on a Chromebook - Updated Tutorial

    This tutorial will only work on Chromebooks with an Intel or AMD CPU (with Linux Apps Support) and not those with an ARM64 architecture CPU.

  • How to Clean Up Flatpak Apps to Clear Disk Space

    Here’s how to clean up Flatpak apps to reclaim your precious disk space. Follow along. Flatpak (like Snap) packages runs in sandbox mode. By design, it takes a considerable amount of disk space for an individual application, even if it is a smaller one. For example, a simple Test editor or a basic image annotator application can take up more than 100+ MB of storage space. It’s how Flatpak, or even Snap operates fundamentally. It pulls all dependencies for an app and runs independently. The advantage of this design is – you do not need to worry about dependencies, updates. All you need to do is install and run. On the contrary, it takes up huge amount of disk space. And if you are running Ubuntu, elementary OS or any distribution for longer period, you would be surprised that over time, Flatpak keeps on taking up more space. Hence, in this guide, we will give you some commands which you can run it by yourself to clean up flatpak apps.

  • How To Install Fail2Ban on Debian 11 - idroot

    In this tutorial, we will show you how to install Fail2Ban on Debian 11. For those of you who didn’t know, Fail2Ban is an intrusion prevention framework written in the Python programming language. This service will help prevent unwanted logins by banning nefarious IP addresses from gaining access to your server. Whereas, other basic functions are monitor log files, searches for predefined patterns, and temporarily block IP addresses. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you through the step-by-step installation of Fail2Ban on a Debian 11 (Bullseye).

  • How eBPF Streamlines the Service Mesh [Ed: Disclosure at the bottom reminds people that Linux Foundation is basically buying such articles]

    There are several service mesh products and projects today, promising simplified connectivity between application microservices, while at the same time offering additional capabilities like secured connections, observability, and traffic management. But as we’ve seen repeatedly over the last few years, the excitement about service mesh has been tempered by practical concerns about additional complexity and overhead. Let’s explore how eBPF allows us to streamline the service mesh, making the service mesh data plane more efficient and easier to deploy.

  • How to Create File-Sharing with ONLYOFFICE Docs and Seafile

    File sharing, as the act of distributing and providing access to different types of files over the Internet, has become something that everyone is familiar with. The fast development of file-sharing services makes it extremely easy for us to share whatever we need with friends, family, or co-workers. For example, a couple of clicks is enough to instantly share a funny video or picture with someone who is halfway around the world. One of the most popular services for file sharing and synchronization is Seafile. In this article, you will learn how to integrate Seafile with ONLYOFFICE Docs to create a collaborative file-sharing environment on Linux.

  • How to Delete One or More Lines in Vi and Vim

    Editing text files directly from the Linux terminal can be tough, especially if you're using a complicated text editor like Vi or Vim. Beginner users have a tough time wrapping their heads around command-line text editors and often find it hard to memorize the key bindings used to perform basic operations. Even deleting lines in Vi and Vim can be a nerve-wracking job for newcomers. But using a rudimentary tool like a text editor doesn't have to be so hard. Here's how you can remove one or more lines from a text file using Vi and Vim.

  • How to Install Firefox 93 in Linux Desktop

    Firefox 93 officially released for all major OS e.g. Linux, Mac OSX, Windows, and Android. The binary package is now available for download for Linux (POSIX) systems, grab the desired one, and enjoy browsing with new features added to it.

  • How to Install OpenNMS Network Monitoring Solution on Debian 11

    OpenNMS is a free and open-source Open Network Management System written in Java. It is a network monitoring application that gathers critical information from local and network hosts using the SNPM protocol. It can be installed on Linux and Windows operating systems and provides a web-based interface to monitor network traffics through a web browser. It offers a rich set of features including, Provisioning, Service Monitoring, Event Management, Charting support and Performance Measurement. In this post, we will show you how to install OpenNMS on Debian 11.

  • How to Install Zabbix Monitoring Tool on Debian 11/10

    Zabbix is a free, open-source, popular, and feature-rich IT infrastructure monitoring software developed using PHP language. It is used to monitor networks, servers, applications, services as well as cloud resources. It also supports the monitoring of storage devices, databases, virtual machines, telephony, IT security resources, and much more.

  • How to Install Zabbix on RHEL/CentOS and Debian/Ubuntu

    Zabbix is an Open Source, high-level enterprise software designed to monitor and keep track of networks, servers, and applications in real-time. Build in a server-client model, Zabbix can collect different types of data that are used to create historical graphics and output performance or load trends of the monitored targets. The server has the ability to check standard networking services (HTTP, FTP, SMTP, IMAP, etc) without the need to install extra software on the monitored hosts.

  • How to Reset Forgotten Root Password in Ubuntu

    User roles on a Linux operating system are hierarchy-based. The root user sits on the iron throne and is able to control the actions of all other users. It is the administrative/authentication power of this root user that controls the actions of any other user with access to the Linux system.

  • How to Set Date and Time on Rocky Linux 8 Desktop and Server

    Here are the two ways to set a date and time on Rocky Linux 8 or AlmaLinux using the command terminal and graphical user interface. There are many processes on the Linux operating system that requires the correct system date and time. Also, to update the system properly and other processes like cronjobs we must need the up-to-date time & date. However, Linux or any other OS automatically syncs the system time from the server, in case not or you want to change the timezone manually then let’s explore how to do that.

  • How to install PostgreSQL on Debian 11?

    PostgreSQL is one of the best open source solutions for relational database management. So, many developers use it as an alternative to MariaDB or proprietary solutions like Oracle. That’s why, today in this post, you will learn how to install PostgreSQL on Debian 11 quickly and easily.

  • How to install complete Kali Linux on USB drive | FOSS Linux

    Kali Linux, previously known as BackTrack Linux, is a Debian-based open-source Linux distribution designed for advanced penetration testing and security auditing. This operating system has many tools for diverse information security undertakings, including penetration testing, reverse engineering, security research, and computer forensics. Kali Linux is a multi-platform elucidation that information security pros and hobbyists can use for free. It is designed to satisfy the needs of penetration testing and security auditing professionals.

  • Installing NFS Server and NFS Client on Ubuntu 20.04 - ByteXD

    NFS server is also known as Network File System server, was developed by Sun Microsystems in 1984. NFS was designed to share files and folders between Linux/Unix systems. After its initial success, NFS version 2 became public, and then everyone could use this to exchange files. It is a distributed file system protocol that allows the client computer to access files over the network. The server requires to validate the client computer, and then after successful validation, files and folders are shared amongst each other. However, the data is not encrypted. Because NFS transfers are not encrypted, it’s not recommended to be used over the internet. NFS server allows you to mount your local files over a network and remote hosts, to interact with them as they are both mounted locally on the same system. NFS serves the same purpose as SMB(Server Message Block), but it is faster as compared with SMB. Currently, there are three NFS protocol versions: NFSv2, NFSv3, NFSv4.

Star Labs Releases Coreboot 7 Open-Source Firmware for Its Linux Laptops with New Features

Based on the upstream Coreboot 4.14 release, Star Labs’ Coreboot 7 open-source firmware is now available for the StarBook Mk V, Star LabTop Mk III, and Star LabTop Mk IV Linux notebooks, along with an updated Coreboot Configurator utility. This release comes about three months after Coreboot 6 and brings several new features, including a new option to set the maximum charge level as 60, 80, or 100 percent, as well as a new option to set the fan curve as Aggressive, Normal, or Quiet. Read more