Language Selection

English French German Italian Portuguese Spanish

About Tux Machines

Monday, 26 Oct 20 - Tux Machines is a community-driven public service/news site which has been around for over a decade and a half and primarily focuses on GNU/LinuxSubscribe now Syndicate content

Search This Site

Games: Atomix, Get-A-Grip Chip, GDScript in Godot

Filed under
Gaming
  • Atomix: A Molecule Building Game for Chemistry Nerds

    Atomix is built for Gnome desktops for Linux and Unix systems. However, if you in something similar you can try Atomiks for Windows and Linux desktops.

  • Robot grappling-magnet platformer Get-A-Grip Chip is out now and I'm hooked | GamingOnLinux

    A platformer where you can't jump? Well, it's been done before but not quite like this. Get-A-Grip Chip is out now and it's a wonderfully unique indie game worth your time. Note: key sent by the developer.

    Thing is, grappling hooks have been done before too, and there's a number of excellent games with it. Get-A-Grip Chip is still different though, as the grapple is a big magnet on your robot head and you can only use it at specific points. The challenge here is getting in range of each point, to hop between them all. The result is a game that's seriously charming, while also proving to be a good challenge.

  • GDScript progress report: Typed instructions

    It's been a while my last report because this particular task took me more time than I anticipated. GDScript now got a much needed optimization.

    Bug fixes

    Between my last report and this one I've been fixing many bugs in GDScript. While not thorough, it should be stable enough to not crash all the time. I am aware that a lot of bugs remain, but I'll iron them out when the features are complete.

    As I said before, if you found a bug not yet reported make sure to open a new issue so I can be aware of it.

    [...]

    I know many of you have been waiting for this. GDScript has had optional typing for quite a while, but so far it had only been for validation in the compilation phase. Now we're finally getting some performance boost at runtime.

    Note that some optimized instructions are applied with type inference but to enjoy the most benefit you have to use static typing for everything (you also get safer code, so it's a plus).

today's howtos

Filed under
HowTos
  • Install MultiPass on Ubuntu : A good VM Manager - LinuxTechLab

    Multipass is a very lightweight VM manager that can be used to launch & manage VMs with a single Linux command. It is available on Linux, macOS as well as Windows. On Windows, it used Hyper-V, on Linux, it uses KVM & on Mac it used HyperKit.

    It can simulate a cloud environment with the support of cloud-init. It helps to create a new development or testing environment with ease. It also supports VirtualBox on macOS & Linux also. In this tutorial, we will learn how to install Multipass on Ubuntu

  • How to install Java on Manjaro Linux

    Many developers and programmers choose Manjaro because it's one of the most user-friendly and feature-rich Linux distributions. In this guide, we go over the steps to install the Java Development Kit on Manjaro Linux. We'll show you how to install both the OpenJDK package (which is free and GPL-licensed) as well as Oracle Java SE Development Kit.

    Arch Linux and Manjaro only officially support the OpenJDK, as that is the non-proprietary version. However, the Oracle package can be installed from the AUR, as you'll see shortly.

  • Lenovo ThinkPad Booting GNU/Linux USB

    Lenovo ThinkPad users can boot USB drives finely. As Ubuntu Buzz often publishes booting articles, now let's learn how to practice that on computers using ThinkPad as example. By making this tutorial I hope I give abilities to all computer users who didn't know yet they can do this amazing thing. Let's go!

  • How to install Arduino IDE on CentOS 8

    Arduino IDE stands for the “Arduino Integrated Development Environment”. Arduino is used to create electronic devices that communicate with their environment using actuators and sensors. Arduino IDE contains an editor that is used for writing and uploading programs to the Arduino board. Before start to create projects through Arduino, the user needs to set up an IDE for the programmable board.

    In this article, we will learn how to install the latest Arduino IDE on CentOS 8.

  • Vincent Fourmond: QSoas tips and tricks: generating smooth curves from a fit

    Often, one would want to generate smooth data from a fit over a small number of data points. For an example, take the data in the following file. It contains (fake) experimental data points that obey to Michaelis-Menten kinetics: $$v = \frac{v_m}{1 + K_m/s}$$ in which \(v\) is the measured rate (the y values of the data), \(s\) the concentration of substrate (the x values of the data), \(v_m\) the maximal rate and \(K_m\) the Michaelis constant.

    [...]

    Now, with the fit, we have reasonable values for \(v_m\) (vm) and \(K_m\) (km). But, for publication, one would want to generate "smooth" curve going through the lines... Saving the curve from "Data.../Save all" doesn't help, since the data has as many points as the original data and looks very "jaggy" (like on the screenshot above)... So one needs a curve with more data points.

Gerrit code review tool taken offline after suspected admin account compromise

Filed under
Development
Security

Gerrit has been taken offline after malicious activity was flagged on the open source code collaboration platform.

The web-based Git code review service was disabled two hours after project maintainers were alerted to a suspected security breach on Tuesday morning (October 20).

“We believe an admin account in Gerrit was compromised allowing an attacker to escalate privileges within Gerrit,” said Clark Boylan in a service announcement issued later that day.
“Around 02:00 UTC October 20 suspicious review activity was noticed, and we were made aware of it shortly afterwards.

“The involved account was disabled and removed from privileged Gerrit groups. After further investigation we decided that we needed to stop the service, this happened at about 04:00 UTC.”

Read more

Sailfish OS now lets you share your Mobile Linux device

Filed under
OS
Linux

Use Multi-account sign-on on your Mobile Linux device. Jolla has Introduced this feature as part of its latest Sailfish OS 3.4 Pallas-Yllästunturi release software update.

Having the ability to share a mobile device amongst your family or co-workers can be very useful. This is something that mobile manufacturers such as Motorola have been doing on their smartphones and Samsung on their tablets for a while now. What I mean by sharing is that everyone can have their own Independent accounts set up on the device - once logged in they have access to their OWN emails, social media accounts, pictures, etc. It's THEIR device.

Read more

Setup KOrganizer with Operation Tulip Online Calendar

Filed under
KDE

Anyone using Kubuntu will see KOrganizer the best desktop calendar and anyone knows internet knows NextCloud technology a complete solution to live online. Now we find Operation Tulip a generous online service for data storage and calendar based on that technology. This tutorial explains how to synchronize your desktop and your online calendar the easy way.

KOrganizer is a complete desktop calendar similar to Mac's or Windows' built-in Calendar application. It works with multiple accounts and supports the popular iCalendar format. It supports colors and categories and is able to work offline. It is developed by KDE.

NextCloud is latest computing technology in the field of online storage developed from the earlier one named OwnCloud. Any company or organization with enough capacity can make their own Google Online Services such as office suite, storage, mail, calendar, video call, and more simply by installing this on their server. NextCloud is Free Software. It is founded by vice president of KDE.

Read more

Audiocasts/Shows: Ubuntu Podcast, ZaReason Review and BSD Now

Filed under
GNU
Linux
BSD
  • Ubuntu Podcast S13E31 – Cheers with water

    This week we’ve been upgrading computers and Ebaying stuff. We discuss the Windows Calculator coming to Linux, Microsoft Edge browser coming to Linux, Ubuntu Community Council elections and LibreOffice office getting Yaru icons. We also round up our picks from the general tech news.

  • Review - The Verix 9100 Linux Laptop from ZaReason

    Time for another laptop review! This time I have the Verix 9100 in the studio sent over from ZaReason, an awesome local Linux laptop vendor that has some great hardware available.

  • BSD Now #373: Kyle Evans Interview

    We have an interview with Kyle Evans for you this week. We talk about his grep project, lua and flua in base, as well as bectl, being on the core team and a whole lot of other stuff.

openSUSE Jump will likely land in openSUSE Leap 15.3

Filed under
SUSE

During the openSUSE + LibreOffice Virtual Conference, there were 2 presentations on what’s next for openSUSE Leap. These presentations also touched on Closing the Leap Gap. This is a project which tries to resolve / minimize the differences in packages between openSUSE Leap and SUSE Linux Enterprise (SLE), by unifying the code base and the development process. More details on this project can be found here.

On the 20th October, there was a Go-No Go decision to be made. This decision is documented here. The outcome is also described in the Engineering Meeting Minutes that can be found here. There was a Conditional No Go given on the proposal to create an in-between release called openSUSE Leap 15.2.1. That means that the Jump and Leap unification will most likely happen in Leap 15.3. I think that this is a reasonable decision, which provides a better timeline for the openSUSE and SUSE teams to work out all of the outstanding issues.

Read more

GNU RCS 5.10.0 available

Filed under
Development
GNU

release notes:

  A spate of bugfixes, new support for nanosecond mtime, etc.

README excerpt:

  GNU RCS (Revision Control System) manages multiple revisions of files.
  RCS can store, retrieve, log, identify, and merge revisions.
  It is useful for files that are revised frequently, e.g.,
  programs, documentation, graphics, and papers.

NEWS for 5.10.0 (2020-10-20):

  - bug fixes

    - RCS file search skipped RCS/FILENAME by default

      The default set of candidate filenames for the RCS file is:

       RCS/FILENAME,v
       RCS/FILENAME
       FILENAME,v

      RCS 5.8 (released 2011-08-30) introduced a bug which caused the
      default RCS file search to skip RCS/FILENAME.  Regression fixed.

    - ‘rlog -w’ behaved like ‘rlog’ (sans ‘-w’)

      RCS 5.8 (released 2011-08-30) introduced a bug which caused
      ‘rlog -w’ (without any logins specified) to fail to default to
      the user login.  Instead it behaved as if option ‘-w’ were
      omitted entirely.

      The cases where logins are specified (e.g., ‘rlog -wjrhacker’)
      were not affected.

    - missing string in comma-v detected, diagnosed

      Previously, if foo,v contained fragment:

       1.1
       log
       text
       @@

      i.e., there was no string value following the ‘log’ keyword,
      then rlog (et al) would interpret that as an "empty log message"
      instead of as a violation of the RCS file format grammar, which
      stipulates that a string value must follow the keywords ‘desc’,
      ‘log’ and ‘text’ -- (info "(rcs) comma-v grammar").

      Now, such a situation causes rlog (et al) to abort w/ message
      "missing string after KEYWORD" (KEYWORD ∈ {desc, log, text}).

    - subsecond resolution maintained for ‘-d’, ‘-T’

      An RCS ‘delta’ includes a ‘date’ component w/ second (whole
      number) resolution.  Previously, on filesystems that support
      subsecond (fractional) resolution for the file modification time
      (aka "mtime"), RCS commands given the ‘-d’ and/or ‘-T’ options
      would disregard, on read, and specify 0 (zero), on write, the
      fractional mtime.

      Now, RCS preserves subsecond mtime in those cases.  More details
      in new manual section -- (info "(rcs) Stamp resolution").

  - portability fixes

    - now buildable under ‘gcc -std=c11’ (default for GCC 5)

      RCS previously failed to build under ‘-std=c11’, which happens
      to be the default mode of GCC 5.  In particular, ‘-std=c11’ is
      more strict about function attributes syntax than ‘-std=c99’.

      Now, the offending code has been rectified.  (Specifically,
      attribute ‘_Noreturn’ now is at the start of a func decl.)

    - threads support

      RCS itself is clueless about threads, but it uses gnulib, which
      may or may not require threads support.  This manifests as the
      configure script options ‘--enable-threads=MODEL’ as well as
      ‘--disable-threads’.

      Previously, "make" would ignore MODEL (even implicitly), acting
      as if ‘--disable-threads’ were specified.  Now, it takes into
      account MODEL by propagating makefile var ‘LIBTHREAD’.

    - consult ‘USER’ first if ‘LOGNAME’ read-only

      To determine the user (login) name in the absence of a specific
      command-line option, RCS normally checks first the env var
      ‘LOGNAME’ and second, ‘USER’.  Alas, this is unworkable under
      AIX, where ‘LOGNAME’ is read-only.  So now, if the configure
      script finds ‘LOGNAME’ to be read-only, it arranges to build RCS
      to check ‘USER’ first and then ‘LOGNAME’.  See README.

    - configure script avoids ‘date -r’

      Unfortunately ‘date -r’ is not POSIX.  This made AIX unhappy.

    - other AIX accomodation

      The AIX compiler complains about the implicit casting that
      occurs when returning a pointer from a function whose return
      type is ‘bool’.  So, we are now explicit.

  - documentation improvements

    - docfix: add "Log message option" to Detailed Node Listing

      Probably Emacs by now has some automagic way to sync the
      ‘@detailmenu’ section w/ the text body... hmmm.

    - style change due to ‘-zZONE’ option

      Specifying option ‘-zZONE’ to ‘rcs log’ changes the date output
      style to use hyphens (ISO) instead of slashes (YYYY/MM/DD).

    - rlog, use with CVS

      Since RCS 5.8 (released 2011-08-30), there have been sporadic
      reports of rlog (aka "rcs log") failing with CVS files.  The
      manual now addresses this -- (info "(rcs) comma-v particulars").

    - delim-separated list

      GNU RCS has always supported comma to separate items in a list
      (e.g., ‘rcs frob -o1.1,2.2’ to remove (or "outdate") revisions
      1.1 and 2.2).  But did you know that most places a comma is
      welcome and you can use other delimiter characters as well?
      Read all about it -- (info "(rcs) Delim-separated list").

    - (style) pargraphs no longer indented

      This looks nicer (IMHO) for Info and Text output formats.

  - testing improvements

    Many new tests and test cases for existing tests were added, to
    catch regressions and exercise infrequent code paths.  For "make
    check" (locally), function coverage is 97.3% (considered "high")
    and line coverage is 84.9% (considered "medium"), per lcov.

  - bootstrap/maintenance tools

    upgraded:

     GNU gnulib 2020-10-19 23:37:09
     GNU texinfo 6.7
     GNU Automake 1.16.2
     GNU Autoconf 2.69c

    as before:

     (none)

tarballs and detached signatures:

  http://ftpmirror.gnu.org/rcs/rcs-5.10.0.tar.lz
  http://ftpmirror.gnu.org/rcs/rcs-5.10.0.tar.lz.sig
  http://ftpmirror.gnu.org/rcs/rcs-5.10.0.tar.xz
  http://ftpmirror.gnu.org/rcs/rcs-5.10.0.tar.xz.sig

source code:

  https://git.savannah.gnu.org/cgit/rcs.git/?h=p

homepage:

  https://www.gnu.org/software/rcs/

Read more

KeePassXC 2.6.2 Password Manager Adds Major UI Improvements and Bug Fixes

Filed under
Software

One of the major improvements included in the KeePassXC 2.6.2 release is a new way for the web browser integration to handle and prioritizes URLs. In addition, there’s also a new “Always on Top” mode in the view menu that lets users set the main KeePassXC window to always be on top.

Furthermore, KeePassXC 2.6.2 moves the option to show or hide usernames and passwords to the view menu, adds new command-line options to let users specify the location of the configuration file and to set environment variables, and improves the CSV import and export functionality, along with support for ISO datetimes.

Read more

IBM/Red Hat: LinuxONE, OpenShift, Integrity Measurement Architecture (IMA) and More

Filed under
Linux
Red Hat
  • IBM integrates Linux One with R3 Corda Enterprise

    It’s an exciting time for IBM LinuxONE. Over the past several months, we’ve been doubling down on new hardware, Red Hat OpenShift and new Cloud Paks for LinuxONE, and new confidential computing capabilities.

    More than ever, our clients of all sizes looking to win in the era of hybrid cloud are focused on key areas: resiliency, performance demands, security, flexibility and modernization.

    Other areas of growth for LinuxONE are emerging workloads and industries like blockchain and digital asset custody. While the importance of safeguarding business and customer data is well known, the nature of blockchain use cases often include the initiation, transfer and custody of financial assets for your business and your customers—which further increases the importance of building applications with security and privacy first.
    News from R3’s CordaCon

  • Persistent storage in action: Understanding Red Hat OpenShift's persistent volume framework - Red Hat Developer

    Red Hat OpenShift is an enterprise-ready Kubernetes platform that provides a number of different models you can use to deploy an application. OpenShift 4.x uses Operators to deploy Kubernetes-native applications. It also supports Helm and traditional template-based deployments. Whatever deployment method you choose, it will be deployed as a wrapper to one or more existing OpenShift resources. Examples include BuildConfig, DeploymentConfig, and ImageStream.

    In this article, I introduce you to OpenShift’s Kubernetes-based persistent volume framework for persistent cluster storage. You will learn how to use OpenShift’s PersistentVolume (PV) and PersistentVolumeClaim (PVC) objects to provision and request storage resources.

  • How to use the Linux kernel's Integrity Measurement Architecture

    The kernel integrity sub-system can be used to detect if a file has been altered (accidently or maliciously), both remotely and/or locally. It does that by appraising a file's measurement (its hash value) against a "good" value stored previously as an extended attribute (on file systems which support extended attributes like ext3, ext4. etc.). Similar, but complementary, mechanisms are provided by other security technologies like SELinux which depending on policy can attempt to protect file integrity.

    The Linux IMA (Integrity Measurement Architecture) subsystem introduces hooks within the Linux kernel to support creating and collecting hashes of files when opened, before their contents are accessed for read or execute. The IMA measurement subsystem was added in linux-2.6.30 and is supported by Red Hat Enterprise Linux 8.

    The kernel integrity subsystem consists of two major components. The Integrity Measurement Architecture (IMA) is responsible for collecting file hashes, placing them in kernel memory (where userland applications cannot access/modify it) and allows local and remote parties to verify the measured values. The Extended Verification Module (EVM) detects offline tampering (this could help mitigate evil-maid attacks) of the security extended attributes.

    IMA maintains a runtime measurement list and, if anchored in a hardware Trusted Platform Module(TPM), an aggregate integrity value over this list. The benefit of anchoring the aggregate integrity value in the TPM is that the measurement list is difficult to compromise by a software attack, without it being detectable. Hence, on a trusted boot system, IMA-measurement can be used to attest to the system's runtime integrity.

  • Bajaj Allianz Life Insurance, IndusInd Bank, ManipalCigna Health Insurance Company, and _VOIS Named Winners of the Red Hat APAC Innovation Awards 2020 for India

    Red Hat, Inc., the world's leading provider of open source solutions, today announced the winners of the Red Hat APAC Innovation Awards 2020 for India. Bajaj Allianz Life Insurance Company, IndusInd Bank, ManipalCigna Health Insurance Company Limited and _VOIS were honored at the Red Hat Forum Asia Pacific 2020 today for their exceptional and innovative use of Red Hat solutions.

Identify Songs On Your Linux Desktop Using SongRec, A Shazam Client For Linux

Filed under
Software

SongRec is an open source Shazam client for Linux. It's written in Rust, with the GUI using Gtk3.

Using the Shazam audio fingerprinting algorithm, this application can identify a song from an audio file or using the microphone. MP3, FLAC, WAV and OGG formats are supported.

This works by analyzing the captured sound, be it from the microphone or and audio file, and seeking a match based on an acoustic fingerprint in a database of millions of songs. Most of the processing is done server-side (so SongRec connects to the Shazam servers). When finding a match in the Shazam database, SongRec shows the artist, song and album names, as well as the date when the recognition was done. All recognized songs are kept in a history list that you can export to CSV or wipe.

Shazam is a music recognition application own by Apple, available for Android, iOS, watchOS and macOS. It can identify music based on a short sample, provided that the background noise level is not high enough to prevent an acoustic fingerprint being taken, and that the song is present in the software's database.

Read more

Ubuntu 20.10 Released

Filed under
Ubuntu
  • Ubuntu 20.10 released, brings full Linux dekstop to Raspberry Pi

    Open-source software fans will now be able to work across even more devices after Canonical revealed the launch of Ubuntu 20.10.

    The latest version of the world's most popular open-source software features a raft of upgrades and improvements, making it more accessible and easier to use than ever before.

    For the first time, users will be able to enjoy Ubuntu on Raspberry Pi devices, with the new release offering optimised Raspberry Pi images for desktop and server.

  • Ubuntu 20.10 Desktop Now Supports the Raspberry Pi 4

    As of the latest release, Raspberry Pi models with 4GB or 8GB RAM can run the Ubuntu 20.10 desktop. Yup, the Groovy Gorilla dishes up support for full-fledged, full-fat desktop version.

    Groovy is but the first foot forward towards a larger goal: an Ubuntu LTS release on the Raspberry Pi, as Eben Upton, CEO at Raspberry Pi, says:

    “From the classic Raspberry Pi board to the industrial grade Compute Module, this first step to an Ubuntu LTS on Raspberry Pi with long term support and security updates matches our commitment to widen access to the very best computing and open source capabilities.”

  • Ubuntu 20.10 rolls out today, along with official support for the Raspberry Pi 4

    While users who want a properly stable base to game with should probably stick to Ubuntu 20.04 which is the long-term support release, the Ubuntu 20.10 'Groovy Gorilla' update is out today.

    For a while there has been a few special Ubuntu flavours that have offered images to install on the Raspberry Pi like Ubuntu MATE, however, that's now becoming official directly within Ubuntu as of the 20.10 release. This is actually awesome, as Ubuntu is one of the easiest Linux distributions to get going with.

    From the press release:

    “In this release, we celebrate the Raspberry Pi Foundation’s commitment to put open computing in the hands of people all over the world,” said Mark Shuttleworth, CEO at Canonical. “We are honoured to support that initiative by optimising Ubuntu on the Raspberry Pi, whether for personal use, educational purposes or as a foundation for their next business venture.”

    “From the classic Raspberry Pi board to the industrial grade Compute Module, this first step to an Ubuntu LTS on Raspberry Pi with long term support and security updates matches our commitment to widen access to the very best computing and open source capabilities” said Eben Upton, CEO of Raspberry Pi Trading.

Python Programming

Filed under
Development
  • DISTUTILS_USE_SETUPTOOLS, QA spam and… more QA spam? – Michał Górny

    I suppose that most of the Gentoo developers have seen at least one of the ‘uses a probably incorrect DISTUTILS_USE_SETUPTOOLS value’ bugs by now. Over 350 have been filed so far, and new ones are filed practically daily. The truth is, I’ve never intended for this QA check to result in bugs being filed against packages, and certainly not that many bugs.

    This is not an important problem to be fixed immediately. The vast majority of Python packages depend on setuptools at build time (this is why the build-time dependency is the eclass’ default), and being able to unmerge setuptools is not a likely scenario. The underlying idea was that the QA check would make it easier to update DISTUTILS_USE_SETUPTOOLS when bumping packages.

    Nobody has asked me for my opinion, and now we have hundreds of bugs that are not very helpful. In fact, the effort involved in going through all the bugmail, updating packages and closing the bugs greatly exceeds the negligible gain. Nevertheless, some people actually did it. I have bad news for them: setuptools upstream has changed entry point mechanism, and most of the values will have to change again. Let me elaborate on that.

  • Python and the infinite [LWN.net]

    A recent proposal on the python-ideas mailing list would add a new way to represent floating-point infinity in the language. Cade Brown suggested the change; he cited a few different reasons for it, including fixing an inconsistency in the way the string representation of infinity is handled in the language. The discussion that followed branched in a few directions, including adding a constant for "not a number" (NaN) and a more general discussion of the inconsistent way that Python handles expressions that evaluate to infinity.

    In general, Python handles floating-point numbers, including concepts like infinity, following the standards laid out by IEEE 754. Positive and negative infinity are represented by two specific floating-point values in most architectures. Currently, representing a floating-point infinite value in Python can be done using a couple of different mechanisms. There is the float() function, which can be passed the string "inf" to produce infinity, and there is the inf constant in the math library, which is equivalent to float('inf'). Brown provided several reasons why he believed a new, identical, and built-in constant was necessary. One of his reasons was that he felt that infinity is a "fundamental constant" that should be accessible from Python without having to call a function or require a library import.

  • Further analysis of PyPI typosquatting [LWN.net]

    We have looked at the problem of confusingly named packages in repositories such as the Python Package Index (PyPI) before. In general, malicious actors create these packages with names that can be mistaken for those of legitimate packages in the repository in a form of "typosquatting". Since our 2016 article, the problem has not gone away—no surprise—but there has been some recent analysis of it, as well as some efforts to combat it.

    On the IQT blog, John Speed Meyers and Bentz Tozer recently posted some analysis they had done to quantify PyPI typosquatting attacks and to categorize them. They started by looking at the examples of actual attacks against PyPI users from 2017 to 2020; they found 40 separate instances over that time span. The criteria used were that the package had a name similar to another in PyPI, contained malware, and was identified and removed from the repository.

  • Automating PDF generation using Python reportlab module

    Generating PDF using python reportlab module, Adding table to PDF using Python, Adding Pie Chart to PDF using Python, Generating PDF invoice using Python code, Automating PDF generation using Python reportlab module

  • Level Up Your Skills With the Real Python Slack Community – Real Python

    The Real Python Community Slack is an English-speaking Python community with members located all over the world. It’s a welcoming group in which you’re free to discuss your coding and career questions, celebrate your progress, vote on upcoming tutorial topics, or just hang out with us at the virtual water cooler.

    As a community member, you also get access to our weekly Office Hours, a live online Q&A session with the Real Python team where you’ll meet fellow Pythonistas to chat about your learning progress, ask questions, and discuss Python tips and tricks via screen sharing.

  • Remove Duplicates From a List

    How do we remove duplicates from a list? One way is to go through the original list, pick up unique values, and append them to a new list.

    About the "Writing Faster Python" series

    "Writing Faster Python" is a series of short articles discussing how to solve some common problems with different code structures. I run some benchmarks, discuss the difference between each code snippet, and finish with some personal recommendations.

    Are those recommendations going to make your code much faster? Not really.
    Is knowing those small differences going to make a slightly better Python programmer? Hopefully!

    You can read more about some assumptions I made, the benchmarking setup, and answers to some common questions in the Introduction article.

LibreOffice 6.4.7 Released as the Last in the Series, End of Life Set for November 30

Filed under
LibO

Containing a total of 72 bug fixes across most of its core components, the LibreOffice 6.4.7 update is here about two months after LibreOffice 6.4.6 to add one last layer of improvements and fixes, ensuring the LibreOffice 6.4 series remains as stable and reliable as possible, as well as to improve document compatibility and interoperability with other office suites.

While it’s already working on fixing bugs for the latest LibreOffice 7.0 office suite series, The Document Foundation currently still recommends LibreOffice 6.4 for enterprise users and any other type of organization that wants to save money by not buying expensive licenses for proprietary office suites.

Read more

Kernel (Linux): ABI, NFS, NAPI (new API), Stats and Security Hardening

Filed under
Linux

  • The ABI status of filesystem formats [LWN.net]

    One of the key rules of Linux kernel development is that the ABI between the kernel and user space cannot be broken; any change that breaks previously working programs will, outside of exceptional circumstances, be reverted. The rule seems clear, but there are ambiguities when it comes to determining just what constitutes the kernel ABI; tracepoints are a perennial example of this. A recent discussion has brought another one of those ambiguities to light: the on-disk format of Linux filesystems.
    Users reporting kernel regressions will receive a varying amount of sympathy, depending on where the regression is. For normal user-space programs using the system-call API, that sympathy is nearly absolute, and changes that break things will need to be redone. This view of the ABI also extends to the virtual filesystems, such as /proc and sysfs, exported by the kernel. Changes that break things are deemed a little more tolerable when they apply to low-level administrative tools; if there is only one program that is known to use an interface, and that program has been updated, the change may be allowed. On the other hand, nobody will be concerned about changes that break out-of-tree kernel modules; the interface they used is considered to be internal to the kernel and not subject to any stability guarantee.

    But those are not the only places where user space interfaces with the kernel. Consider, for example, this regression report from Josh Triplett. It seems that an ext4 filesystem bug fix merged for 5.9-rc2 breaks the mounting of some ext4 filesystems that he works with.

  • NFS Client With Linux 5.10 Adds "READ_PLUS" For Faster Performance - Phoronix

    The NFS client code with Linux 5.10 has another performance optimization.

    The NFS client code now supports the READ_PLUS operation supported by NFS v4.2 and later. READ_PLUS is a variant of READ that supports efficiently transferring holes. In cases where READ_PLUS is supported by both the NFS client and server, this operation should always be used rather than READ.

  • NAPI polling in kernel threads

    Systems that manage large amounts of network traffic end up dedicating a significant part of their available CPU time to the network stack itself. Much of this work is done in software-interrupt context, which can be problematic in a number of ways. That may be about to change, though, once this patch series posted by Wei Wang is merged into the mainline.
    Once a packet arrives on a network interface, the kernel must usually perform a fair amount of protocol-processing work before the data in that packet can be delivered to the user-space application that is waiting for it. Once upon a time, the network interface would interrupt the CPU when a packet arrived; the kernel would acknowledge the interrupt, then trigger a software interrupt to perform this processing work. The problem with this approach is that, on busy systems, thousands of packets can arrive every second; handling the corresponding thousands of hardware interrupts can run the system into the ground.

    The solution to this problem was merged in 2003 in the form of a mechanism that was called, at the time, "new API" or "NAPI". Drivers that support NAPI can disable the packet-reception interrupt most of the time and rely on the network stack to poll for new packets at a frequent interval. Polling may seem inefficient, but on busy systems there will always be new packets by the time the kernel polls for them; the driver can then process all of the waiting packets at once. In this way, one poll can replace dozens of hardware interrupts.

  • Some 5.9 kernel development statistics [LWN.net]

    The 5.9 kernel was released on October 11, at the end of a ten-week development cycle — the first release to take more than nine weeks since 5.4 at the end of 2019. While this cycle was not as busy as 5.8, which broke some records, it was still one of the busier ones we have seen in some time, featuring 14,858 non-merge changesets contributed by 1,914 developers. Read on for our traditional look at what those developers were up to while creating the 5.9 release.

    Of the 1,914 developers contributing to 5.9, 306 made their first contribution for this release. This is the largest number of new contributors we have seen since 4.12 (which had 334 first-time contributors) was released in 2017 and, indeed, the second-highest number ever seen. All together, the 5.9 contributors added just over 730,000 lines of code and removed nearly 262,000 for a net growth of 468,000 lines of code.

  • Linux 5.10 Hardens Against Possible DMA Attacks By External PCIe Devices - Phoronix

    The PCI changes were submitted on Wednesday for the Linux 5.10 kernel. 

    The PCI subsystem updates for Linux 5.10 aren't too exciting this round but there are a few items worth noting. One change is the enabling of ACS translation blocking for external PCIe devices in protecting against possible DMA attacks. 

    Translation Blocking is enabled for untrusted/external PCIe devices to harden against direct memory access attacks. ACS (Access Control Services) Translation Blocking will block any request with the AT bit set as an effort to protect against improper routing of PCIe packets. 

Security Leftovers

Filed under
Microsoft
Security

The Document Foundation announces LibreOffice 6.4.7

Filed under
LibO

The Document Foundation announces the availability of LibreOffice 6.4.7, the 7th and last minor release of the LibreOffice 6.4 family, targeted at users relying on the application for desktop productivity. LibreOffice 6.4.7 includes bug fixes and improvements to document compatibility and interoperability with software from other vendors.

Read more

Standards/Consortia: Abolishing OOXML, Web Standards, and the European Commission's Interoperability Drive

Filed under
LibO
Web
OOo
  • Professors, please let us submit PDFs

    We are under two weeks away from a presidential election and already eight months into a deadly pandemic, but we still have time for the little things. No, I don’t mean smelling flowers and sipping pumpkin spice lattes, though you are welcome to do so—I mean the types of file formats that professors request students use to submit papers.

    In my experience, most professors ask for files with a DOCX extension, a format which was developed by Microsoft in 2007 to help standardize its file extensions across its various applications. Officially known as Office Open XML, the DOCX format broke backwards compatibility with the old .doc format. This meant that all previous versions of Microsoft Word prior to the new standard would be unable to open files with this particular extension. Consternation followed that development in 2007 (or 2008 for Mac users), but in the year 2020 we have mostly solved that issue, as most computers these days do not run any pre-2006 versions of Microsoft Office.

    The modern problems with DOCX are really not problems with DOCX itself, but rather with its place in the pantheon of file extensions that are now available. Most students in our current age produce their work in a Google Doc (in point of fact, this very article was produced in a Google Doc). It’s a simple workflow that has all the functionality of a full-blown application without having to leave a web browser or fight with a sign-in form (beyond the one that we’re always signed into as a part of daily campus life). I don’t support submitting an essay or exam as a raw Google Doc, however, and my reasons for not doing so are partially shared with my aversion to submitting in DOCX: all the writing tools are immediately available upon opening the document.

    [...]

    The obvious solution is for professors to request papers in Portable Document Format, PDF. Originally developed in 1993, the PDF file format has not outlived its usefulness. Anything, from Windows 10 to Windows 95, MacOS to OS X or Unix to Ubuntu, anything can open a PDF. And since anything can open it, when students finish writing and export to PDF, we can see exactly what it is we’re submitting with our names attached. And it’s not like professors should hate it; it’s the default format for any downloaded academic document, and providing comments is much closer to how comments are written on physical paper.

    Students shouldn’t be the only ones submitting files in PDF format either. For every file in DOCX a professor puts on Moodle, there are probably three copies on every student’s hard drive. Every weekday we face the choice of digging through our downloaded files for the syllabus we downloaded a week ago or downloading yet another copy of that same syllabus. Uploading PDF files instead of DOCX to Moodle lets students open it in a web browser, a faster and less cluttered operation that lets our focus stay on class instead of going through old files.

  • Static versus dynamic web sites

    In this post, I want to explore two fundamental principles or criteria that underpinned my original article, but were more or less unpronounced: sustainability and power. I also want to update you on my current site configuration.

  • [Old] Writing HTML in HTML

    I've just finished the final rewrite of my website. I'm not lying: this is the last time I'm ever going to do it. This website has gone through countless rewrites – from WordPress to Jekyll to multiple static site generators of my own – but this is the final one. I know so, because I've found the ultimate method for writing webpages: pure HTML.

    It sounds obvious, but when you think about how many static site generators are being released every day – the list is practically endless – it's far from obvious. Drew DeVault recently challanged people to create their own blog, and he didn't even mention the fact that one could write it in pure HTML:

    If you want a hosted platform, I recommend write.as. If you're technical, you could build your own blog with Jekyll or Hugo. GitHub offers free hosting for Jekyll-based blogs.

    Now, there's nothing wrong with Jekyll or Hugo; it's just interesting that HTML doesn't even get a mention. And of course, I'm not criticizing Drew; I think the work he's doing is great. But, just like me and you, he is a child of his time.

    That's why I'm writing this blog post – to turn the tide just a little bit.

  • Shaping the future interoperability policy

    The European Commission is currently evaluating the ISA² programme and the European Interoperability Framework to present a reinforced public sector interoperability policy in 2021.

    The related roadmaps (EIF and ISA²) are now published for feedback on the Commission’s Have your say portal. You can provide feedback on the EIF and future interoperability policy roadmap till 12 November 2020. Feedback on the roadmap for the evaluation of the ISA² programme is open till 13 November 2020.

FreeBSD Can Now Be Built From Linux/macOS Hosts, Transition To Git Continues

Filed under
BSD

The FreeBSD project has published their Q3-2020 report on the state of this leading BSD operating system.

Among the highlights they made during the third quarter include:

- The FreeBSD Foundation issued additional grants around WiFi and Linux KPI layer improvements, Linux application compatibility improvements with the Linuxulator, DRM/graphics driver updates, Zstd compression for OpenZFS, online RAID-Z expansion, and modernizing the LLDB target support for FreeBSD.

- FreeBSD Foundation staff members have been working to improve the build infrastructure, ARM64 support, migrating their development tree to Git, rewriting the UNIX domain socket locking, and run-time dynamic linker and kernel ELF loader improvements.

Read more

Original/source:

  • FreeBSD Quarterly Status Report - Third Quarter 2020
    FreeBSD Project Quarterly Status Report - Third Quarter 2020
    Introduction
    
       This report covers FreeBSD related projects for the period between July
       and September, and is the third of four planned reports for 2020.
    
       This quarter brings a good mix of additions and changes to the FreeBSD
       Project and community, from a diverse number of teams and people
       covering everything from architectures, continuous integration,
       wireless networking and drivers, over drm, desktop and third-party
       project work, as well as several team reports, along with many other
       interesting subjects too numerous to mention.
    
       As the world is still affected by the epidemic, we hope that this
       report can also serve as a good reminder that there is good work that
       can be done by people working together, even if we're apart.
    
       We hope you'll be as interested in reading it, as we've been in making
       it. Daniel Ebdrup Jensen, on behalf of the quarterly team.
    

[Old] History of FreeBSD: Part 1: UNIX and BSD

Programming Languages, Games and Going GPL

Filed under
Development
Gaming
  • Developer survey: C# losing ground to JavaScript, PHP and Java for cloud apps, still big in gaming [Ed: When Microsoft Tim writes about development trends he expectedly focuses on largely rejected Microsoft stuff, not what actually matters.]

    A new developer survey has shown the popularity of C#, the primary language of Microsoft's .NET platform, slipping from third to sixth place in three years, though usage is still growing in absolute terms and it is particularly popular in game development.

    Research company Slashdata surveyed over 17,000 developers globally for its 19th “State of the Developer Nation” report. The researchers make a point of attempting to measure the absolute number of programming language users, rather than simply looking at relative popularity, as done by indexes from the likes of StackOverflow or Redmonk.

  • Minecraft Java will move to Microsoft accounts in 2021, gets new social screen [Ed: Can Microsoft use Minecraft Java to attack Java itself?]
  • Classic 3D RTS 'Machines: Wired for War' goes open source under the GPL

    Machines: Wired for War is a true classic 3D RTS from the late 90s, and it appears to now be open source under the GPL and up on GitHub. This was in the list of actually being one of the first proper 3D games of the genre, although not as well known as many other RTS games.

    Back in 2019, one dedicated fan posted on their website about how they managed to grab a copy of the source, update it a bit and port it to modern platforms (Linux included). The actual rights to the game appear to sit with Nightdive Studios now, and they appear to have given the greenlight on open sourcing the code from that same fan which they've now listed on their own official GitHub.

  • Stellaris gets spooky with the Necroids Species Pack on October 29 | GamingOnLinux

    The latest expansion pack for Stellaris arrives on October 29 and it's going to get a little spooky with the Necroids Species Pack. Diving into the darker side of the galaxy, the expansion comes with as you prepare to meet the Necroids, an intelligent species who believe that death is not the end, but rather the beginning of their journey.

    Necroids are known to spend their days excitedly studying in preparation for their eventual "transformation" in the Elevation Chamber. They're not exactly the nicest bunch, and they certainly look the part too.

Syndicate content

More in Tux Machines

Leaving Mozilla and Recalling One's Job in Mozilla

  • yoric.steps.next()

    The web is getting darker. It is being weaponized by trolls, bullies and bad actors and, as we’ve witnessed, this can have extremely grave consequences for individuals, groups, sometimes entire countries. So far, most of the counter-measures proposed by either governments or private actors are even scarier. The creators of the Matrix protocol have recently published the most promising plan I have seen. One that I believe stands a chance of making real headway in this fight, while respecting openness, decentralization, open-source and privacy. I have been offered the opportunity to work on this plan. For this reason, after 9 years as an employee at Mozilla, I’ll be moving to Element, where I’ll try and contribute to making the web a better place. My last day at Mozilla will be October 30th.

  • Working open source | daniel.haxx.se

    I work full time on open source and this is how. Background I started learning how to program in my teens, well over thirty years ago and I’ve worked as a software engineer and developer since the early 1990s. My first employment as a developer was in 1993. I’ve since worked for and with lots of companies and I’ve worked on a huge amount of (proprietary) software products and devices over many years. Meaning: I certainly didn’t start my life open source. I had to earn it. When I was 20 years old I did my (then mandatory) military service in Sweden. After having endured that, I applied to the university while at the same time I was offered a job at IBM. I hesitated, but took the job. I figured I could always go to university later – but life took other turns and I never did. I didn’t do a single day of university. I haven’t regretted it. [...]    I’d like to emphasize that I worked as a contract and consultant developer for many years (over 20!), primarily on proprietary software and custom solutions, before I managed to land myself a position where I could primarily write open source as part of my job. [...] My work setup with Mozilla made it possible for me to spend even more time on curl, apart from the (still going) two daily spare time hours. Nobody at Mozilla cared much about (my work with) curl and no one there even asked me about it. I worked on Firefox for a living. For anyone wanting to do open source as part of their work, getting a job at a company that already does a lot of open source is probably the best path forward. Even if that might not be easy either, and it might also mean that you would have to accept working on some open source projects that you might not yourself be completely sold on. In late 2018 I quit Mozilla, in part because I wanted to try to work with curl “for real” (and part other reasons that I’ll leave out here). curl was then already over twenty years old and was used more than ever before.

Programming: Buzzwords, Meson, Tracealyzer, LLVM, Python and Rust

  • What is DevSecOps? Everything You Need To Know About DevSecOps

    Most people are familiar with the term “DevOps,” but they don’t know how to really utilize it. There’s more to DevOps than just development and operational teams. There’s an essential element of DevOps that is often missing from the equation; IT security. Security should be included in the lifecycle of apps.  The reason you need to include security is that security was once assigned to one team that integrated security near the end-stages of development. Taking such a lax approach to security wasn’t such a problem when apps were developed in months or years. The average development cycle has changed quite a bit, though, and apps can be developed in a matter of days or weeks. Outdated security practices like leaving security too late can bring DevOps initiatives to their knees. 

  •   
  • Nibble Stew: The Meson Manual: Good News, Bad News and Good News

    Starting with good news, the Meson Manual has been updated to a third edition. In addition to the usual set of typo fixes, there is an entirely new chapter on converting projects from an existing build system to Meson. Not only are there tips and tricks on each part of the conversion, there is even guidance on how to get it done on projects that are too big to be converted in one go.

  • Percepio Releases Tracealyzer Visual Trace Diagnostics Solution Version 4.4 with Support for Embedded Linux

    Percepio announced the availability of Tracealyzer version 4.4 with support for embedded Linux. Tracealyzer gives developers insight during software debugging and verification at the system level by enabling visual exploratory analysis from the top down. This makes the software suitable for spotting issues during full system testing and drill down into the details to find the cause. Version 4.4 adds several views optimized for Linux tracing, in addition to a set of visualizations already in Tracealyzer, and leverages Common Trace Format (CTF) and the widely supported LTTng, an open source tracing framework.

  •   
  • LLVM Adds A SPIR-V CPU Runner For Handling GPU Kernels On The CPU - Phoronix

    LLVM has merged an experimental MLIR-based SPIR-V CPU runner that the developers are working towards being able to handle CPU-based execution of GPU kernels.  This new SPIR-V runner is built around the MLIR intermediate representation (Multi-Level Intermediate Representation) with a focus of going from GPU-focused code translated through SPIR-V and to LLVM and then executed on the CPU. The runner focus is similar to that of the MLIR-based runners for NVIDIA CUDA, AMD ROCm, and Vulkan, but just executing on the CPU itself. It was earlier this year LLVM added the MLIR-Vulkan-Runner for handling MLIR on Vulkan hardware. 

  • Python Modulo in Practice: How to Use the % Operator – Real Python

    Python supports a wide range of arithmetic operators that you can use when working with numbers in your code. One of these operators is the modulo operator (%), which returns the remainder of dividing two numbers.

  • Test & Code : Python Testing for Software Engineering 136: Wearable Technology - Sophy Wong

    Wearable technology is not just smart consumer devices like watches and activity trackers. Wearable tech also includes one off projects by designers, makers, and hackers and there are more and more people producing tutorials on how to get started. Wearable tech is also a great way to get both kids and adults excited about coding, electronics, and in general, engineering skills. Sophy Wong is a designer who makes really cool stuff using code, technology, costuming, soldering, and even jewelry techniques to get tech onto the human body.

  • Librsvg's test suite is now in Rust

    Some days ago, Dunja Lalic rewrote the continuous integration scripts to be much faster. A complete pipeline used to take about 90 minutes to run, now it takes about 15 minutes on average. [...] The most complicated thing to port was the reference tests. These are the most important ones; each test loads an SVG document, renders it, and compares the result to a reference PNG image. There are some complications in the tests; they have to create a special configuration for Fontconfig and Pango, so as to have reproducible font rendering. The pango-rs bindings do not cover this part of Pango, so we had to do some things by hand.

ARM32 in Linux and Open Source Hardware Certification

  • ARM32 Page Tables

    As I continue to describe in different postings how the ARM32 start-up sequence works, it becomes necessary to explain in-depth the basic kernel concepts around page tables and how it is implemented on ARM32 platforms. To understand the paging setup, we need to repeat and extend some Linux paging lingo. Some good background is to read Mel Gormans description of the Linux page tables from his book “Understanding the Linux Virtual Memory Manager”. This book was published in 2007 and is based on Mel’s PhD thesis from 2003. Some stuff has happened in the 13 years since then, but the basics still hold. It is necessary to also understand the new layers in the page tables such as the five layers of page tables currently used in the Linux kernel. First a primer: the ARM32 architecture with a classic MMU has 2 levels of page tables and the more recent LPAE (Large Physical Address Extension) MMU has 3 levels of page tables. Only some of the ARMv7 architectures have LPAE, and it is only conditionally enabled, i.e. the machines can also use the classic MMU if they want, they have both. It is not enabled by default on the multi_v7 configuration: your machine has to explicitly turn it on during compilation. The layout is so different that the same binary image can never support both classic and LPAE MMU in the same kernel image.

  • Announcing the Open Source Hardware Certification API – Open Source Hardware Association

    Today we are excited to announce the launch of a read/write API for our Open Source Hardware Certification program. This API will make it easier to apply for certification directly from where you already document your hardware, as well as empower research, visualizations, and explorations of currently certified hardware. OSHWA’s Open Source Hardware Certification program has long been an easy way for creators and users alike to identify hardware that complies with the community definition of open source hardware. Since its creation in 2016, this free program has certified hardware from over 45 countries on every continent except Antarctica. Whenever you see the certification logo on hardware:

LibreOffice: Presentation Size Decreasing and New Presentations About LibreOffice