Language Selection

English French German Italian Portuguese Spanish

About Tux Machines

Friday, 10 Jul 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

How open source will affect the future of our energy use

Filed under
OSS

Humanity depends upon the energy furnished by our environment. Without powerful energy sources, we would not be able to digitally communicate with people from anywhere and feel as if we're in the same room.

According to the 2019 edition of the BP Statistical Review of World Energy, we are still heavily relying on non-renewable energy sources such as coal, gas, and oil (by a share of 85%) to maintain our lifestyle. The slight 8% share renewable resources represent is obviously not sufficient to match today's queries. With that knowledge, at what price are we leading this lifestyle? We're meeting the needs of the present, but are we compromising the ability of future generations to meet their needs?

Read more

How to Upgrade to Linux Mint 20 from Linux Mint 19.3

Filed under
Linux

If you are running Linux Mint 19.3 "Tara", here are the steps you need to perform to upgrade to the latest Linux Mint 20.
Read more

The 10 Best Linux Network Monitoring Tools

Filed under
Software

Having total control over your network is essential to prevent programs from overusing your network resources and slowing down the overall performance. This is why you should install a network monitoring tool on your system, giving you a visual overview of everything that’s happening on your network.

To help you out, we have put together a list of the ten best Linux network monitoring tools. All the tools mentioned here are open-source and follows an easy and intuitive UI (mostly command-line based) to help you monitor the bandwidth usage on your network.

Read more

Programming: GNOME, CI/CD, Go and Qt

Filed under
Development
  • Bilal Elmoussaoui: libhandy-rs v0.6.0 is out!

    Recently I kind of took over the maintainership of libhandy-rs, the Rust bindings of libhandy. I have since then been preparing for a new release so that Rust & GTK app developers can update to the latest gtk-rs release as soon as possible. I also heavily depend on it on my various little apps.

  • Easily speed up CI by reducing download size

    Every time a CI pipeline runs on GitLab, it downloads the git repository for your project. Often, pipeline jobs are set up to make further downloads (of dependencies or subprojects), which are also run on each job.

  • What you need to know about automation testing in CI/CD

    Test automation means focusing continuously on detecting defects, errors, and bugs as early and quickly as possible in the software development process. This is done using tools that pursue quality as the highest value and are put in place to ensure quality—not just pursue it.

    One of the most compelling features of a continuous integration/continuous delivery (CI/CD) solution (also called a DevOps pipeline) is the opportunity to test more frequently without burdening developers or operators with more manual work. Let's talk about why that's important.

  • Generics for Go

    The Go programming language was first released in 2009, with its 1.0 release made in March 2012. Even before the 1.0 release, some developers criticized the language as being too simplistic, partly due to its lack of user-defined generic types and functions parameterized by type. Despite this omission, Go is widely used, with an estimated 1-2 million developers worldwide. Over the years there have been several proposals to add some form of generics to the language, but the recent proposal written by core developers Ian Lance Taylor and Robert Griesemer looks likely to be included in a future version of Go.

    [...]

    Generics, also known as "parameterized types" or "parametric polymorphism", are a way to write code or build data structures that will work for any data type; the code or data structure can be instantiated to process each different data type, without having to duplicate code. They're useful when writing generalized algorithms like sorting and searching, as well as type-independent data structures like trees, thread-safe maps, and so on. For example, a developer might write a generic min() function that works on all integer and floating-point types, or create a binary tree that can associate a key type to a value type (and work with strings, integers, or user-defined types). With generics, you can write this kind of code without any duplication, and the compiler will still statically check the types.

  • Fixing a common antipattern when loading translations in Qt

    I’m a Polish guy working with computers, mostly on Windows. However, the lingua franca of the IT industry is English, so every time I see a tutorial for some dev tool, it’s in that language. To lessen the burden of decoding which menu entry in the tutorial corresponds to which menu entry on my PC I decided to run the system with an English display language. I still want the rest of the i18n-related stuff (date format, keyboard, currency etc.) to be in Polish however.

    [...]

    As you can see, Thunderbird and Windows Settings show up in English but Qt Linguist is encrypted with some overengineered Slavic cipher (aka Polish language). What I further noticed, is that this incorrect language selection is particularly prevalent in Qt-based applications. Subsequent digging revealed that this antipattern is widespread in Qt world, see the relevant GitHub search (requires login).

today's leftovers and howtos

Filed under
Misc
  • Digest of YaST Development Sprint 103

    Before introducing the recent changes in the YaST land, the team would like to congratulate the openSUSE community for the release of Leap 15.2. It looks like a pretty solid release, and we are proud of being part of this project.

    Having said that, let’s focus on what the team has achieved during the past sprint.

  • [syslog-ng] Insider 2020-07: TLS; capabilities; 3.27;

    This is the 83rd issue of syslog-ng Insider, a monthly newsletter that brings you syslog-ng-related news.

  •         

  • Top 6 Open Source Bitcoin Wallets, Rated and Reviewed for 2020

    The biggest appeal of open source wallets is that their code can be reviewed and publicly audited for potential security issues. As a result, open source software is often more robust than closed-source. The same goes for bitcoin wallets.

    [...]

    Whether you’re a beginner who needs a fantastic UI to help you navigate the intricacies of an open source wallet or you’re a developer who needs a platform that allows you to build on a secure base, these wallets will give you everything you’re looking for.

  •        

  • Android 10 has the fastest update rate ever, hits 16% of users in 10 months

    Google today dropped a blog post detailing its progress on improving the Android ecosystem's update speed. The company has been hard at work for the past few years modularizing Android, with the hope that making Android easier to update would result in device manufacturers pushing out updates faster. Google's efforts have been paying off, with the company announcing Android 10 has had the fastest rollout ever.

    The last few versions of Android have each brought a major improvement to Android's update system. Android 8 introduced Project Treble, which separated the OS from the hardware support, enabling easier porting of Android across devices. In Android 9 Pie, Google completed its work on Treble and started publishing Generic System Images (GSIs): drop-in versions of Android that work on any Project Treble-compatible device. Android 10 introduced Project Mainline and the new APEX file type designed for updatable lower-level system components, delivered through the Play Store.

    Google's stats show that all this work is actually improving the ecosystem. "Thanks to these efforts," Google writes, "the adoption of Android 10 has been faster than any previous versions of Android. Android 10 was running on 100 million devices 5 months post launch—28% faster than Android Pie."

  • LibreOffice QA/Dev Report: June 2020
  • Phoronix Test Suite 9.8 Released For Open-Source Benchmarking, New Docker Benchmarking Image

    Phoronix Test Suite 9.8 is available today as the latest quarterly stable feature release to our open-source, cross-platform benchmarking software.

    Phoronix Test Suite 9.8 brings numerous improvements as our Q3'2020 update including:

    - Improved handling of test installation failures around failed download URLs and other cases where newer minor revisions of said test profiles have corrected them. The new behavior is to seamlessly use the new minor revisions of test profile updates to correct said failures rather than requiring manual intervention over the version specified.

  • How to convert an ISO to a Docker image
  • How To Set Up Nginx Server Blocks on Ubuntu 20.04
  • How to Install MariaDB on Ubuntu 16.04 Linux Operating System

Servers: Kubernetes, MicroK8s and Ubuntu

Filed under
Server
Ubuntu
  • What’s up with the Kubernetes ecosystem

    This week’s acquisition of Rancher Labs by the veteran enterprise Linux firm SUSE neatly illustrates the growing momentum of container-based application deployment. It also underlines the importance of Kubernetes as the orchestration tool of choice for managing all those containers.

    So, what does this latest move mean for the broader Kubernetes ecosystem? When containers first garnered corporate attention six or seven years ago, Docker and its tools were the centre of attention. But the focus soon shifted to management frameworks capable of automating the deployment and scaling of containers, and Kubernetes, developed by Google from technology used in its cloud platform, quickly won out.

    Like many open source tools, Kubernetes has its share of rough edges and does not necessarily provide all the capabilities that users need to build a functioning container-based infrastructure. Companies such as Rancher sprang forth to provide a complete software stack built around Kubernetes for those who didn’t want to build it all themselves.

  • MicroK8s HA tech preview is now available
  • Ubuntu Support of AWS Graviton2 Instances
  • Ubuntu Support of AWS Graviton2 Instances

    Ubuntu is the industry-leading operating system for use in the cloud. Every day millions of Ubuntu instances are launched in private and public clouds around the world. Canonical takes pride in offering support for the latest cloud features and functionality.

    As of today, all Ubuntu Amazon Web Services (AWS) Marketplace listings are now updated to include support for the new Graviton2 instance types. Graviton2 is Amazon’s next-generation ARM processor delivering increased performance at a lower cost. This

Linux and Linux Foundation: Rust, Windows, SystemD and More

Filed under
Linux
  • Linux Developers May Discuss Allowing Rust Code Within The Kernel

    A Google engineer is looking to discuss at this year's Linux Plumbers Conference the possibility of allowing in-tree Rust language support.

    Nick Desaulniers of Google, who is known for his work on LLVM Clang'ing the Linux kernel and related efforts, is wanting to bring up the matter of in-tree Rust support for the kernel. The extent though of allowing Rust within the kernel isn't clear yet but would likely be very limited.

  • Emulating Windows system calls in Linux

    The idea of handling system calls differently depending on the origin of each call in the process's address space is not entirely new. OpenBSD, for example, disallows system calls entirely if they are not made from the system's C library as a security-enhancing mechanism. At the end of May, Gabriel Krisman Bertazi proposed a similar mechanism for Linux, but the objective was not security at all; instead, he is working to make Windows games run better under Wine. That involves detecting and emulating Windows system calls; this can be done through origin-based filtering, but that may not be the solution that is merged in the end.
    To run with any speed at all, Wine must run Windows code directly on the CPU to the greatest extent possible. That must end, though, once the Windows program makes a system call; trapping into the Linux kernel with the intent of making a Windows system call is highly unlikely to lead to good results. Traditionally, Wine has handled this by supplying its own version of the user-space Windows API that implemented the required functionality using Linux system calls. As explained in the patch posting, though, Windows applications are increasingly executing system calls directly rather than going through the API; that makes Wine unable to intercept them.

    The good news is that Linux provides the ability to intercept system calls in the form of seccomp(). The bad news is that this mechanism, as found in current kernels, is not suited to the task of intercepting only system calls made from Windows code running within a larger process. Intercepting every system call would slow things down considerably, an effect that tends to make gamers particularly cranky. Tracking which parts of a process's address space make Linux system calls and which make Windows calls within the (classic) BPF programs used by seccomp() would be awkward at best and, once again, would be slow. So it seems that a new mechanism is called for.

    The patch set adds a new memory-protection bit for mmap() called PROT_NOSYSCALL which, by default, does not change the kernel's behavior. If, however, a given process has turned on the new SECCOMP_MODE_MMAP mode in seccomp(), any system calls made from memory regions marked with PROT_NOSYSCALL will be trapped; the handler code can then emulate the attempted system call.

  • systemd 246-RC1 Released

    With this being the first systemd release since March, there is a lot in store for the v246 milestone. There are many systemd 246 features including new unit settings, the service manager has support for the cgroup v2 freezer, the CPU affinity setting now supports a NUMA value, systemd.hostname= can be used for setting the hostname from the kernel command line during early boot, hardware database updates, systemd-journald now supports Zstd compression, numerous networkd additions, systemd-cryptsetup now supports activating Microsoft BitLocker volumes during boot, systemd-homed improvements, the new systemd-xdg-autostart-generator, and much more. Just yesterday was one of the latest additions of exposing host OS information to containers.

  • Intel Gen12/Xe Graphics Have AV1 Accelerated Decode - Linux Support Lands

    On top of Intel Gen12/Xe Graphics bringing other media engine improvements and much better 3D graphics support, another exciting element of the next-generation Intel graphics is now confirmed: GPU-accelerated AV1 video decoding!

    There has been talk of Gen12/Xe supporting AV1 at least on the decode side but a lack of hard information to date. But landing this week in Intel's Media Driver for Linux is indeed AV1 decode wired up for Gen12. This is nice to see happen and a bit of a surprise as so far the Intel Media Driver support matrix has lacked any references to AV1.

  • Four years of Zephyr

    The Zephyr project is an effort to provide an open-source realtime operating system (RTOS) that is designed to bridge the gap between full-featured operating systems like Linux and bare-metal development environments. It's been over four years since Zephyr was publicly announced and discussed here (apparently to a bit of puzzlement). In this article, we give an update on the project and its community as of its v2.3.0 release in June 2020; we also make some guesses about its near future.

    The authors are both Zephyr developers working for Nordic Semiconductor; Cufí was the release manager for the v2.3.0 release.

    [...]

    The Zephyr kernel supports multiple architectures and scheduling algorithms. There are cooperative and preemptive threads, along with facilities for reducing interrupt latencies and guaranteeing the execution of key threads. An optional user mode can use the Memory Protection Units (MPUs) typically present in microcontrollers to isolate and sandbox threads or groups of threads from one another and the kernel.

    Zephyr supports six major architectures (x86, Arm, ARC, NIOS II, Xtensa, and RISC-V) and also runs in emulation. Both 32- and 64-bit processor support exists for some architectures. Within the Arm architecture, the emphasis has been on the usual 32-bit Cortex-M cores, but experimental support for Cortex-R and Cortex-A (including 64-bit Cortex-A) exists and continues to improve. Beyond "real hardware," Zephyr runs on QEMU, and as an ELF executable. It supports a simulated radio, which can save time and expense when testing and debugging radio frequency (RF) issues. In all, there are upstream support files for over 200 "boards".

    Zephyr has logging and shell subsystems. These have configurable transports, including traditional serial ports (for both) and over the network (for logging). Logging is optionally asynchronous; in this case, a separate thread actually sends log messages. The logging calls themselves post compact messages to a queue, which can be done quickly, so logging can be done even from within interrupt context.

    Hardware-specific APIs are built around a lightweight device driver model that is tightly integrated with the kernel. It supports a wide range of peripherals and sensors under this common model. Multiple storage options are available. These range from basic key-value storage optimized for NOR flash to filesystems.

Mozilla Leftovers and Firefox Development

Filed under
Moz/FF

  • Browser Wish List - Tab Splitting for Contextual Reading

    On Desktop, I'm very often in a situation where I want to read a long article in a browser tab with a certain number of hypertext links. The number of actions I have to do to properly read the text is tedious. It's prone to errors, requires a bit of preparation and has a lot of manual actions.

  • Mozilla Privacy Blog: Laws designed to protect online security should not undermine it

    Mozilla, Atlassian, and Shopify yesterday filed a friend-of-the-court brief in Van Buren v. U.S. asking the U.S. Supreme Court to consider implications of the Computer Fraud and Abuse Act for online security and privacy.

    Mozilla’s involvement in this case comes from our interest in making sure that the law doesn’t stand in the way of effective online security. The Computer Fraud and Abuse Act (CFAA) was passed as a tool to combat online hacking through civil and criminal liability. However, over the years various federal circuit courts have interpreted the law so broadly as to threaten important practices for managing computer security used by Mozilla and many others. Contrary to the purpose of the statute, the lower court’s decision in this case would take a law meant to increase security and interpret it in a way that undermines that goal.

  • Changes to storage.sync in Firefox 79

    Firefox 79, which will be released on July 28, includes changes to the storage.sync area. Items that extensions store in this area are automatically synced to all devices signed in to the same Firefox Account, similar to how Firefox Sync handles bookmarks and passwords. The storage.sync area has been ported to a new Rust-based implementation, allowing extension storage to share the same infrastructure and backend used by Firefox Sync.

    Extension data that had been stored locally in existing profiles will automatically migrate the first time an installed extension tries to access storage.sync data in Firefox 79. After the migration, the data will be stored locally in a new storage-sync2.sqlite file in the profile directory.

  • SpiderMonkey Newsletter 5 (Firefox 78-79)

    SpiderMonkey is the JavaScript engine used in Mozilla Firefox. This newsletter gives an overview of the JavaScript and WebAssembly work we’ve done as part of the Firefox 78 and 79 Nightly release cycles.

    If you like these newsletters, you may also enjoy Yulia’s weekly Compiler Compiler live stream, a guided tour of what it is like to work on SpiderMonkey and improve spec compliance.

  • Testing Firefox more efficiently with machine learning

    At Mozilla we have around 50,000 unique test files. Each contain many test functions. These tests need to run on all our supported platforms (Windows, Mac, Linux, Android) against a variety of build configurations (PGO, debug, ASan, etc.), with a range of runtime parameters (site isolation, WebRender, multi-process, etc.).

    While we don’t test against every possible combination of the above, there are still over 90 unique configurations that we do test against. In other words, for each change that developers push to the repository, we could potentially run all 50k tests 90 different times. On an average work day we see nearly 300 pushes (including our testing branch). If we simply ran every test on every configuration on every push, we’d run approximately 1.35 billion test files per day! While we do throw money at this problem to some extent, as an independent non-profit organization, our budget is finite.

    So how do we keep our CI load manageable? First, we recognize that some of those ninety unique configurations are more important than others. Many of the less important ones only run a small subset of the tests, or only run on a handful of pushes per day, or both. Second, in the case of our testing branch, we rely on our developers to specify which configurations and tests are most relevant to their changes. Third, we use an integration branch.

    [...]

    The early results of this project have been very promising. Compared to our previous solution, we’ve reduced the number of test tasks on our integration branch by 70%! Compared to a CI system with no test selection, by almost 99%! We’ve also seen pretty fast adoption of our mach try auto tool, suggesting a usability improvement (since developers no longer need to think about what to select). But there is still a long way to go!

    We need to improve the model’s ability to select configurations and default to that. Our regression detection heuristics and the quality of our dataset needs to improve. We have yet to implement usability and stability fixes to mach try auto.

    And while we can’t make any promises, we’d love to package the model and service up in a way that is useful to organizations outside of Mozilla. Currently, this effort is part of a larger project that contains other machine learning infrastructure originally created to help manage Mozilla’s Bugzilla instance.

  • Async Interview #8: Stjepan Glavina

    Several months ago, on May 1st, I spoke to Stjepan Glavina about his (at the time) new crate, smol. Stjepan is, or ought to be, a pretty well-known figure in the Rust universe. He is one of the primary authors of the various crossbeam crates, which provide core parallel building blocks that are both efficient and very ergonomic to use. He was one of the initial designers for the async-std runtime.

  • Missing structure in technical discussions

    People are amazing creatures. When discussing a complex issue, they are able to keep multiple independent arguments in their heads, the pieces of supporting and disproving evidence, and can collapse this system into a concrete solution.

  • Thank you, Julie Hanna

    Over the last three plus years, Julie Hanna has brought extensive experience on innovation processes, global business operations, and mission-driven organizations to her role as a board member of Mozilla Corporation. We have deeply appreciated her contributions to Mozilla throughout this period, and thank her for her time and her work with the board.

    [...]

    We look forward to continuing to see her play a key role in shaping and evolving purpose-driven technology companies across industries.

Why Windows Power Users Break Linux

Filed under
GNU
Linux
Microsoft

As more people come to Linux, those of us who help the Windows refugees make the switch will need to be very patient with them. The more someone knows about Windows, the more likely it is that they will break Linux. Handing them a Linux laptop and saying, “Here ya go…” is not enough if they are going to succeed. You’re going to have to hold their hand for a while and telling them to “RTFM” will just drive them back to Windows. Understanding why they struggle as much as they do will help you to help them avoid some of the common pitfalls.

I specialize in helping people get started with Linux. I’ve helped hundreds of people over the last few years and I can pretty much spot the ones who are going to do well and those who are going to be frustrated. If a client approaches me and they start the conversation with “I’ve been using Windows for 20 years…” I know it’s going to be a bumpy ride.

The pattern is always the same: I walk them through an install and all is well for about two weeks and then I get a frustrated message from them about how Linux is stupid and doesn’t work. I know without asking that they’ve broken something major or borked up the whole system. I usually can fix the problem and make a good lesson out of it for them. I have gone so far as to walk them through a second installation from scratch. If the system is totally hosed, that’s the best way to go. Give them a clean slate to work with and hope they learned something.

On the other hand, if a client tells me that they know nothing about computers but they need one to get things done like writing documents, spreadsheets, web surfing and email then they usually have zero issues. I get them setup and I don’t hear from them again. I usually contact then after a month or two and they invariably tell me everything is working perfectly. I got a call from a gentleman I hadn’t heard from in a year and a half recently. He said everything was working nicely but he wanted some advice about upgrading his Linux Mint from 17.3 to 18.1 and could I help him get it right. No problem. Wonderful to hear that all is well!

Read more

IBM/Red Hat/Fedora Leftovers

Filed under
Red Hat

  • Making compliance scalable in a container world

    Software is increasingly being distributed as container images. Container images include the many software components needed to support the featured software in the container. Thus, distribution of a container image involves distribution of many software components, which typically include GPL-licensed components. We can't expect every company that distributes container images to become an open source compliance expert, so we need to build compliance into container technology.

    [...]
    Package maintainers and package management tools have played an underappreciated role in source availability for over two decades. The focused nature of a package, the role of a package maintainer, and the tooling that has been built to support package management systems results in the expectation that someone (the package maintainer) will take responsibility for seeing that the sources are available. Tools that build binaries also collect the corresponding sources into an archive that can be delivered alongside the binaries. The result is that most people don't need to think about source code availability. The sources are available in the same unit as the delivery of the executable software and via the same distribution mechanism; for software delivered as an RPM, the corresponding source is available in a source RPM.

    In contrast, there is no convention for providing the source code that corresponds to a container image.

    The many software components in a container image often include GPL-licensed software. Companies that may not have much experience with distribution of FOSS software may begin distributing GPL-licensed software when they start offering their software in the form of container images. Let's make it straightforward for everyone, including companies who may be new to FOSS, to provide source code in a consistent way.

  • Relive summer of OSCON: Fight COVID-19 with Node-RED and Call for Code

    The first round of the Summer of OSCON may be over, but you can still answer the Call for Code and explore how you can use Node-RED and other open source technologies to create solutions that fight COVID-19.

    Join IBMer John Walicki in a replay of his OSCON live-coding session. He shows you how to use Node-RED and APIs from the Weather Channel related to Covid-19 to quickly build out a tracking application.

  • Behavior is easy, state is hard: Tame inconsistent state in your Java code

    DevNation Tech Talks are hosted by the Red Hat technologists who create our products. These sessions include real solutions plus code and sample projects to help you get started. In this talk, you’ll learn the root cause of common inconsistent state-related bugs in your production Java code—and how to solve them—from Edson Yanaga and Burr Sutter.

    NullPointerException on a field that was never supposed to be null? A negative value on an “always positive” field? Ever wondered why these bugs happen? You’re not alone. Watch this session to learn the root cause of these common bugs in production Java code, and how to solve them by applying some interesting techniques in your business code.

  • Culture of Innovation: Using AI to Solve Problems at Red Hat

    Red Hat is continually innovating and part of that innovation includes researching and striving to solve the problems our customers face. That innovation is driven in part through the Office of the CTO and includes Red Hat OpenShift, Red Hat OpenShift Container Storage and use cases such as the Open Hybrid Cloud, Artificial Intelligence and Machine Learning. We recently interviewed Michael Clifford, Data Scientist in the office of the CTO, here at Red Hat about these very topics.

  • Fedora documentation is now multilingual

    The Fedora project documentation website provides a lot of end-users content. All of this content is now translateable, providing a powerful tool for our multilingual communication. Writers will continue to work as usual. The publishing tools automatically convert content and push it to the translation platform. Then, translated content is automatically published.

  • PHP version 7.2.32, 7.3.20 and 7.4.8

    RPMs of PHP version 7.4.8 are available in remi repository for Fedora 32 and remi-php74 repository for Fedora 30-31 and Enterprise Linux ≥ 7 (RHEL, CentOS).

    RPMs of PHP version 7.3.20 are available in remi repository for Fedora 30-31 and remi-php73 repository for Enterprise Linux ≥ 6 (RHEL, CentOS).

    RPMs of PHP version 7.2.32 are available in remi-php72 repository for Enterprise Linux ≥ 6 (RHEL, CentOS).

  • Stirring things up for Fedora 33

    The next release of the Fedora distribution — Fedora 33 — is currently scheduled for the end of October. Fedora's nature as a fast-moving distribution ensures that each release will contain a number of attention-getting changes, but Fedora 33 is starting to look like it may be a bit more volatile than its immediate predecessors. Several relatively controversial changes are currently under discussion on the project's mailing lists; read on for a summary.

Python Programming

Filed under
Development
  • The (non-)return of the Python print statement

    In what may have seemed like an April Fool's Day joke to some, Python creator Guido van Rossum recently floated the idea of bringing back the print statement—several months after Python 2, which had such a statement, reached its end of life. In fact, Van Rossum acknowledged that readers of his message to the python-ideas mailing list might be checking the date: "No, it's not April 1st." He was serious about the idea—at least if others were interested in having the feature—but he withdrew it fairly quickly when it became clear that there were few takers. The main reason he brought it up is interesting, though: the new parser for CPython makes it easy to bring back print from Python 2 (and before).

  • Release: PyCharm 2020.1.3

    PyCharm 2020.1.3 is out with some important bug fixes. Update from within PyCharm (Help | Check for Updates), using the JetBrains Toolbox, or by downloading the new version from our website.

    [...]

    If you’re on Ubuntu 16.04 or later, or any other Linux distribution that supports snap, you should not need to upgrade manually, you’ll automatically receive the new version.

  • Python Anywhere: Outage report 7 July 2020

    We had an unplanned outage the day before yesterday; it was our first big one since July 2017. It was caused by an extremely unlikely storage system failure, but despite that it should not have led to such a lengthy downtime, and should not have affected so many people. We have some plans on what our next steps should be, and will be implementing at least some of them over the coming months.

  • Using module __dir__ and __getattr__ for configuration
  • Enrolling Students - Building SaaS #64

    In this episode, we worked on a view to enroll students into a grade level for the school year. I added all the context data and used Tailwind to design the form layout to pick from a list of available grade levels. We added a variety of unit tests to prove the correctness.

    The enrollment page needed three pieces of data in the context to complete the form. We added the student, school_year, and grade_levels data to the context and wrote tests to show the data in there. We also protected that data from any erroneous access by another user.

    When the data was set, we worked on the template for the form. I set the header to make the enrollment action clear and created the radio input selectors to show the different grade level options. We cleaned up the design and user experience by including some Tailwind CSS classes which made the radio inputs much easier to select.

    At the end of the stream, we wrote the happy path test for the POST request to prove that the enrollment record exists after submission.

  • Top 8 Online Resources To Learn Anaconda In 2020
  • PSF GSoC students blogs: GSoC Week 6: Begin the Phase 2

Managing tasks with todo.txt and Taskwarrior

Filed under
Software
HowTos

One quote from Douglas Adams has always stayed with me: "I love deadlines. I like the whooshing sound they make as they fly by". We all lead busy lives and few ever see the bottom of our long to-do lists. One of the oldest items on my list, ironically, is to find a better system to manage all my tasks. Can task-management systems make us more productive while, at the same time, reducing the stress caused by the sheer number of outstanding tasks? This article looks at todo.txt and Taskwarrior.

The management of tasks is rather personal and people have completely different approaches and philosophies. This is, of course, reflected in the requirements for, and expectations from, a task manager. Requirements can also change as our interaction with computers changes. For example, while I put a lot of emphasis on managing tasks via the command line in the past, these days I'm more interested in a good mobile app (to add tasks on the go and to receive reminders) and web support (to get an overview of all tasks).

A good way to filter tasks is also essential for me. One of the reasons for using task-management software is so you can stop worrying about tasks until they become relevant. This requires a way to find relevant tasks when needed, such as when the due date is coming up soon or because you're in a relevant setting or place (often called a "context" in task-management systems). Going to the supermarket would be a good time to bring up a shopping list, for example. Task-management systems offer a number of ways to organize information that can be used in filters, such as tags, contexts (often stored as tags in the form of @tag, such as @home), and lists.

In a series of two articles, we'll review four systems for managing tasks and to-do items around which open-source ecosystems have formed.

Read more

Graphics: Mesa 20.1.3 and Collabora Working for Microsoft

Filed under
Graphics/Benchmarks
Microsoft
  • mesa 20.1.3

    Hi all,

    I'd like to announce Mesa 20.1.3, the third bugfix release for the 20.1 branch.

    There's a lot in there, but more than half of the commits are just updates to
    our testing infrastructure; nothing out of the ordinary in the driver changes.

    The next bugfix release is planned for 2 weeks from now, on 2020-07-22.

    Cheers,
    Eric

  • Mesa 20.1.3 Brings More Fixes To The Open-Source Vulkan / OpenGL Drivers

    Mesa 20.1.3 is out as the newest bi-weekly point release for this stable Mesa3D series.

    Mesa 20.2 continues building up a lot of feature work and should ultimately see its first official release around the end of August, but for now Mesa 20.1.x is the greatest when it comes to stable material. Mesa 20.1.3 is now the newest routine update for users of these predominantly OpenGL/Vulkan drivers.

  • Deep dive into OpenGL over DirectX layering [Ed: Microsoft is attacking OpenGL again, the EEE way]

    Earlier this year, we announced a new project in partnership with Microsoft: the implementation of OpenCL and OpenGL to DirectX 12 translation layers (Git repository). Time for a summer update! In this blog post, I will explain a little more about the OpenGL part of this work and more specifically the steps that have been taken to improve the performance of the OpenGL-On-D3D12 driver.

  • Progress Being Made On OpenCL+OpenGL Over Direct3D 12 [Ed: Microsoft pays Collabora to promote proprietary vendor lock-in; see comments]

    That OpenCL/OpenGL-over-D3D12 initiative was announced earlier this year only for it then to become public later that it's principally for the Direct3D 12 support coming to WSL2. With that there can then be the OpenGL graphics and OpenCL compute within the Linux WSL2 instances that in turn end up using the native D3D12 drivers of the host. Besides this layering library being developed with Collabora, Microsoft has also been working on a Wayland compositor as part of the GUI app support and the DirectX Linux kernel driver and Hyper-V DRM driver.

    Collabora for their part have published an update on their engineering effort of translating OpenGL and OpenCL for DirectX 12 consumption. They are making good progress and even have a Doom 3 time demo working. Obviously the resulting performance has been a big concern and focus.

  • Welcoming five new Collaborans!

    With over 15 years' experience in working remotely, Collabora was, and continues to be, uniquely prepared to support our customers and our teams during these challenging times. Despite the many obstacles brought on by the pandemic, we have continued delivering services to our clients, and continue to build and strengthen our engineering and administration teams for the road ahead.

    Based in Canada, India, the United Kingdom, Brazil and Cyprus, these newest Collaborans join our worldwide team of highly skilled engineers, developers and managers who all share a common passion for technology and Open Source.

Raspberry Pi 4: Could Ubuntu Be On The Way?

Filed under
Hardware
Ubuntu

On the surface the Raspberry Pi 4 8GB may not have been a revolutionary release, but it has finally brought the power of a low cost 64 bit desktop computer to homes around the world. From day one the Raspberry Pi has used a Linux based operating system, initially a rather limited release of Debian, called Raspbian which has evolved over the years to become Raspberry Pi OS. But there are times when a more refined desktop experience would benefit the user.

For over 15 years Ubuntu have provided a Linux distribution that offers a more friendly and forgiving means to delve into the Linux ecosystem.

On a recent Ubuntu Podcast, Martin Wimpress, Director of Engineering at Canonical the company which publishes Ubuntu, hinted that “maybe we’re working on Ubuntu desktop for the Raspberry Pi”. Martin Wimpress was brought in to work on the main Ubuntu release based on his work in the Ubuntu MATE community.

There is a high chance that this will be ready for Ubuntu 20.10 due for release in October 2020.

Read more

This week in GNOME Builder #1

Filed under
GNOME

Hello! My name is Günther Wagner and i try to give some insights in the current development of GNOME Builder. All these changes can already been tested with GNOME Builder Nightly so go ahead and give us feedback! This newsletter is called “This week in …” but probably we won’t post every week. So the interval will be a little bit arbitrary. Let’s start!

Read more

Also: GNOME Builder ❤️ Rust Analyzer Part 2

Audiocasts/Shows: Ubuntu Podcast, BSD Now and Bad Voltage

Filed under
GNU
Linux
BSD
Ubuntu
  • Ubuntu Podcast from the UK LoCo: S13E16 – Owls

    This week we’ve been re-installing Ubuntu 20.04. Following WWDC, we discuss Linux Desktop aspirations, bring you some command line love and go over all your wonderful feedback.

    It’s Season 13 Episode 16 of the Ubuntu Podcast! Alan Pope, Mark Johnson and Martin Wimpress are connected and speaking to your brain.

  • BSD Now 358: OpenBSD Kubernetes Clusters

    Yubikey-agent on FreeBSD, Managing Kubernetes clusters from OpenBSD, History of FreeBSD part 1, Running Jitsi-Meet in a FreeBSD Jail, Command Line Bug Hunting in FreeBSD, Game of Github, Wireguard official merged into OpenBSD, and more

  • Bad Voltage 3×08: Petrichoronavirus

Service Router Linux/SR Linux for Server Appliance

Filed under
Server
  • Nokia Dives Into Data Center Market With Switch Platform

    Nokia likes to talk about scalability a lot. So, it’s no surprise that scalability is at the heart of the company’s new data center strategy.

    The telecommunications vendor today unveiled its new switching portfolio, which includes a new network operating system, intent-based networking tool kit, and switch hardware. With these components, Nokia aims to help cloud providers and data center builders keep with up with the exponential growth in traffic spurred by emerging technologies like 5G, edge compute, and IoT.

    “We see a big opportunity,” said Steve Vogelsang, CTO of Nokia’s IP and optical networks group. “We’ve got an opportunity to improve data center networking for all cloud builders. This is not only targeting the webscalers, but the tier-two public clouds, software service providers, enterprises, and of course the telcos as they build out the telco cloud.”

    The idea, he explains, is to give this wide demographic of customers the tools they need to ensure a high degree of automation as they scale out to mitigate changes in traffic across their infrastructure.

    [...]

    The first prong of Nokia’s data center strategy is founded on a new network operating system called Service Router Linux, or SR Linux for short.

  • Nokia announces generational step in data center networking; new OS and tools give cloud builders unprecedented ability to adapt, automate and scale

    Nokia SR Linux is a genuine architectural step forward as it is the first fully modern microservices-based NOS, and the SR Linux NDK (NetOps development kit) exposes a complete and rich set of programming capabilities. Applications are easily integrated through modern tools like gRPC (remote procedure call) and protobuf, with no recompiling, no language limitations and no dependencies. SR Linux also inherits Nokia’s battle-tested Internet protocols from the service router operating system (SROS), which is the trademark of the huge installed base of Nokia carrier-grade routers. SR Linux is in effect the industry’s first flexible and open network application development environment.

Open Hardware: Arduino and Beyond

Filed under
Hardware
  • Don’t try this at home: Colin Furze creates a semi-automatic potato cannon

    Colin Furze decided that he needed a potato cannon for his DIY screw tank, and after making a manually loaded version, he automated the process.

    What he came up with uses a pair of linear actuators to push the barrel forward under Arduino control, allowing a potato-projectile to drop into the device’s chamber assembly. After a short delay, it closes up again, cutting the roundish vegetable into a cylindrical plug. Flammable gas then enters via a solenoid valve for a carefully regulated amount of time.

    With the gas mixed, the cannon is then fired, and a single button press starts the process over again. The powerful cannon creates a mess in his test area after a few shots, actually taking a plug out of the mattress he used to absorb the impact. It should be quite impressive once mounted on the screw tank, though it’s a project that you probably shouldn’t try at home.

  • The Simplest TS100 Upgrade Leads Down A Cable Testing Rabbit Hole

    The fake “Grundlagen Audio” USB lead from my April 1st sojourn into using GNU Radio for audio analysis meanwhile is surprisingly stiff for what was in reality a cheap Amazon Basics item. This is probably due to two factors; it has a braided outer in a bid to copy more expensive leads, and my spraying it with gold paint has only made it stiffer.

  • HeyTeddy is a conversation-based prototyping tool for Arduino

    Programming an Arduino to do simple things like turn on an LED or read a sensor is easy enough via the official IDE. However, think back to your earliest experiences with this type of hardware. While rewarding, getting everything set up correctly was certainly more of a challenge, requiring research that you now likely take for granted.

    To assist with these first steps of a beginner’s hardware journey, researchers at KAIST in South Korea have come up with HeyTeddy, a general-purpose prototyping tool based on dialogue.

    As seen in the video below, HeyTeddy’s voice input is handled by an Amazon Echo Dot, which passes these commands through the cloud to a Raspberry Pi. The system then interacts with the hardware on a breadboard using an Uno running Firmata, along with a 7” 1024 x 600 LCD touchscreen for the GUI.

Security Leftovers

Filed under
Security
  • FreeBSD Security Advisory FreeBSD-SA-20:19.unbound
  • GCC Compiler Lands Mitigation For Arm's Straight Line Speculation Vulnerability

    It took a month after Arm disclosed the CPU "SLS" vulnerability and when the LLVM compiler landed their initial mitigation, but the GNU Compiler Collection (GCC) now has mitigations as well for this Straight Line Speculation vulnerability.

    The Straight Line Speculation vulnerability could lead to instructions on ARMv8 processors being executed following a change in control flow. Mitigating SLS involves using SB instructions for a speculation barrier following vulnerable instructions.

  • Security updates for Thursday

    Security updates have been issued by CentOS (firefox), Debian (ffmpeg, fwupd, ruby2.5, and shiro), Fedora (freerdp, gssdp, gupnp, mingw-pcre2, remmina, and xrdp), openSUSE (chocolate-doom), Oracle (firefox and kernel), and Ubuntu (linux, linux-lts-xenial, linux-aws, linux-kvm, linux-raspi2, linux-snapdragon and thunderbird).

  • Mozilla Security Blog: Reducing TLS Certificate Lifespans to 398 Days

    We intend to update Mozilla’s Root Store Policy to reduce the maximum lifetime of TLS certificates from 825 days to 398 days, with the aim of protecting our user’s HTTPS connections. Many reasons for reducing the lifetime of certificates have been provided and summarized in the CA/Browser Forum’s Ballot SC22. Here are Mozilla’s top three reasons for supporting this change.

Syndicate content

More in Tux Machines

The 10 Best Linux Network Monitoring Tools

Having total control over your network is essential to prevent programs from overusing your network resources and slowing down the overall performance. This is why you should install a network monitoring tool on your system, giving you a visual overview of everything that’s happening on your network. To help you out, we have put together a list of the ten best Linux network monitoring tools. All the tools mentioned here are open-source and follows an easy and intuitive UI (mostly command-line based) to help you monitor the bandwidth usage on your network. Read more

Programming: GNOME, CI/CD, Go and Qt

  • Bilal Elmoussaoui: libhandy-rs v0.6.0 is out!

    Recently I kind of took over the maintainership of libhandy-rs, the Rust bindings of libhandy. I have since then been preparing for a new release so that Rust & GTK app developers can update to the latest gtk-rs release as soon as possible. I also heavily depend on it on my various little apps.

  • Easily speed up CI by reducing download size

    Every time a CI pipeline runs on GitLab, it downloads the git repository for your project. Often, pipeline jobs are set up to make further downloads (of dependencies or subprojects), which are also run on each job.

  • What you need to know about automation testing in CI/CD

    Test automation means focusing continuously on detecting defects, errors, and bugs as early and quickly as possible in the software development process. This is done using tools that pursue quality as the highest value and are put in place to ensure quality—not just pursue it. One of the most compelling features of a continuous integration/continuous delivery (CI/CD) solution (also called a DevOps pipeline) is the opportunity to test more frequently without burdening developers or operators with more manual work. Let's talk about why that's important.

  • Generics for Go

    The Go programming language was first released in 2009, with its 1.0 release made in March 2012. Even before the 1.0 release, some developers criticized the language as being too simplistic, partly due to its lack of user-defined generic types and functions parameterized by type. Despite this omission, Go is widely used, with an estimated 1-2 million developers worldwide. Over the years there have been several proposals to add some form of generics to the language, but the recent proposal written by core developers Ian Lance Taylor and Robert Griesemer looks likely to be included in a future version of Go. [...] Generics, also known as "parameterized types" or "parametric polymorphism", are a way to write code or build data structures that will work for any data type; the code or data structure can be instantiated to process each different data type, without having to duplicate code. They're useful when writing generalized algorithms like sorting and searching, as well as type-independent data structures like trees, thread-safe maps, and so on. For example, a developer might write a generic min() function that works on all integer and floating-point types, or create a binary tree that can associate a key type to a value type (and work with strings, integers, or user-defined types). With generics, you can write this kind of code without any duplication, and the compiler will still statically check the types.

  • Fixing a common antipattern when loading translations in Qt

    I’m a Polish guy working with computers, mostly on Windows. However, the lingua franca of the IT industry is English, so every time I see a tutorial for some dev tool, it’s in that language. To lessen the burden of decoding which menu entry in the tutorial corresponds to which menu entry on my PC I decided to run the system with an English display language. I still want the rest of the i18n-related stuff (date format, keyboard, currency etc.) to be in Polish however. [...] As you can see, Thunderbird and Windows Settings show up in English but Qt Linguist is encrypted with some overengineered Slavic cipher (aka Polish language). What I further noticed, is that this incorrect language selection is particularly prevalent in Qt-based applications. Subsequent digging revealed that this antipattern is widespread in Qt world, see the relevant GitHub search (requires login).

today's leftovers and howtos

  • Digest of YaST Development Sprint 103

    Before introducing the recent changes in the YaST land, the team would like to congratulate the openSUSE community for the release of Leap 15.2. It looks like a pretty solid release, and we are proud of being part of this project. Having said that, let’s focus on what the team has achieved during the past sprint.

  • [syslog-ng] Insider 2020-07: TLS; capabilities; 3.27;

    This is the 83rd issue of syslog-ng Insider, a monthly newsletter that brings you syslog-ng-related news.

  •         
  • Top 6 Open Source Bitcoin Wallets, Rated and Reviewed for 2020

    The biggest appeal of open source wallets is that their code can be reviewed and publicly audited for potential security issues. As a result, open source software is often more robust than closed-source. The same goes for bitcoin wallets. [...] Whether you’re a beginner who needs a fantastic UI to help you navigate the intricacies of an open source wallet or you’re a developer who needs a platform that allows you to build on a secure base, these wallets will give you everything you’re looking for.

  •        
  • Android 10 has the fastest update rate ever, hits 16% of users in 10 months

    Google today dropped a blog post detailing its progress on improving the Android ecosystem's update speed. The company has been hard at work for the past few years modularizing Android, with the hope that making Android easier to update would result in device manufacturers pushing out updates faster. Google's efforts have been paying off, with the company announcing Android 10 has had the fastest rollout ever. The last few versions of Android have each brought a major improvement to Android's update system. Android 8 introduced Project Treble, which separated the OS from the hardware support, enabling easier porting of Android across devices. In Android 9 Pie, Google completed its work on Treble and started publishing Generic System Images (GSIs): drop-in versions of Android that work on any Project Treble-compatible device. Android 10 introduced Project Mainline and the new APEX file type designed for updatable lower-level system components, delivered through the Play Store. Google's stats show that all this work is actually improving the ecosystem. "Thanks to these efforts," Google writes, "the adoption of Android 10 has been faster than any previous versions of Android. Android 10 was running on 100 million devices 5 months post launch—28% faster than Android Pie."

  • LibreOffice QA/Dev Report: June 2020
  • Phoronix Test Suite 9.8 Released For Open-Source Benchmarking, New Docker Benchmarking Image

    Phoronix Test Suite 9.8 is available today as the latest quarterly stable feature release to our open-source, cross-platform benchmarking software. Phoronix Test Suite 9.8 brings numerous improvements as our Q3'2020 update including: - Improved handling of test installation failures around failed download URLs and other cases where newer minor revisions of said test profiles have corrected them. The new behavior is to seamlessly use the new minor revisions of test profile updates to correct said failures rather than requiring manual intervention over the version specified.

  • How to convert an ISO to a Docker image
  • How To Set Up Nginx Server Blocks on Ubuntu 20.04
  • How to Install MariaDB on Ubuntu 16.04 Linux Operating System

Servers: Kubernetes, MicroK8s and Ubuntu

  • What’s up with the Kubernetes ecosystem

    This week’s acquisition of Rancher Labs by the veteran enterprise Linux firm SUSE neatly illustrates the growing momentum of container-based application deployment. It also underlines the importance of Kubernetes as the orchestration tool of choice for managing all those containers. So, what does this latest move mean for the broader Kubernetes ecosystem? When containers first garnered corporate attention six or seven years ago, Docker and its tools were the centre of attention. But the focus soon shifted to management frameworks capable of automating the deployment and scaling of containers, and Kubernetes, developed by Google from technology used in its cloud platform, quickly won out. Like many open source tools, Kubernetes has its share of rough edges and does not necessarily provide all the capabilities that users need to build a functioning container-based infrastructure. Companies such as Rancher sprang forth to provide a complete software stack built around Kubernetes for those who didn’t want to build it all themselves.

  • MicroK8s HA tech preview is now available
  • Ubuntu Support of AWS Graviton2 Instances
  • Ubuntu Support of AWS Graviton2 Instances

    Ubuntu is the industry-leading operating system for use in the cloud. Every day millions of Ubuntu instances are launched in private and public clouds around the world. Canonical takes pride in offering support for the latest cloud features and functionality. As of today, all Ubuntu Amazon Web Services (AWS) Marketplace listings are now updated to include support for the new Graviton2 instance types. Graviton2 is Amazon’s next-generation ARM processor delivering increased performance at a lower cost. This