While the past twelve months have, as expected, been a busy one for the open source and Linux communities — a number of my Linux predictions for 2019 even came to pass — next year looks set to be even better.
Having recapped the best Linux distros of 2019 let us turn to the coming year!
Read on to discover my Linux predictions for 2020, all served with a pinch of sodium-based seasoning on the side! Happy reading!
2020 is a significant year for Unix. At the very start of the year, Unix turns 50.
While some of the early development of Unix predates the official start of its "epoch," Jan 1, 1970 remains the zero-point in POSIX time and the recognized beginning of all things Unix. Jan 1, 2020 will mark 50 years since that moment.
Over the years while visiting my parents, invariably I am asked the question, "How is work going?" While I want to be specific with my answer, I usually end up giving a vague "good" or "staying busy" type of response. It’s not that I give vague answers because I don’t think they comprehend what I do, it’s that there is not enough time to cover all the different aspects that determine the answer. In fact, I recently posed the question "What do you guys think I do all day for my work?" to my family on the Slack workspace we use to communicate and collaborate on vacations and meetups. While the majority of my family does have a general understanding of what I do, there were a couple of, while not totally inaccurate, comical replies.
"Eat Cheetos and play World of Warcraft," was my youngest brother’s humorous response, and while I do enjoy the occasional Cheeto snack, I think that all of us sysadmins would agree that there is not enough time in our day to play games. On a more serious note, it’s understandable that there are those in my family who relate what I do to whatever front-end or publically facing interface the company I work for has. For example, I’ve worked for companies that have a website, so to them, "I build or manage the website." While there is definite truth to that answer, doing so is a small part of my responsibilities.
Another accurate interpretation of what my family thinks a sysadmin does is "fix broken computers.' Again, there is so much truth in this idea, but it is a severe overgeneralization of what we do. Break and fix plays a huge role in being a good sysadmin. "Fixing a broken computer" looks like so many different things, whether that is patching or upgrading operating systems or software, replacing a hardware component, or applying a custom solution to change functionality. Still, fixing things is just a fraction of my day, if at all. Sometimes it’s just a few hours a week.
When I go out with my wife and we meet someone new, I eventually get asked what I do for work. My wife almost always chimes in with, "He stares at a black screen with white letters all day." I can’t blame her for that interpretation, because it just so happens that when I am working remotely while she is there, it is usually because I was called for a priority issue that requires me to log into a terminal for troubleshooting.
Ultimately, the truth of one sysadmin’s day might look completely different from another’s when it comes to our specific tasks, and we are often misunderstood. The biggest commonality I believe we all have as Linux sysadmins is that we are the glue that binds multiple IT teams together. We are the ones that interpret what developers need when they make requests to the networking or security teams. We are sometimes at the beck and call of the database teams. Meanwhile, we’re diligently striving for fast, secure, and reliable operation with our servers while trying to stay under budget.
So, the next time a stranger asks me what I do for work, maybe I’ll answer with something besides, "I’m in IT."
Although our first year here at Enable Sysadmin has been a short one—we went live and published our first articles in May of 2019—it has been an awesome year. Some amazing writers contributed articles of all types, and many of those articles are about Linux. Some of these Linux articles focused on commands, ranging from lists of those you need to know to system monitoring and screen sharing. Others concentrated on SSH, troubleshooting, administration, and even managing the /tmp directory.
We have compiled a list of our top 11 Linux articles from 2019 to give you an opportunity to re-read your favorites, or perhaps find an article or two that you missed. We hope you enjoy these articles but, even more, we hope that they teach you something new.
We wrote about IoT devroom call for proposals for FOSDEM 2020 a little while ago, and as the free open-source developer meetup is getting closer, FOSDEM 2020 organizers released the schedule.
Brent sits down with Catherine Kretzschmar, professional music teacher, coding bootcamp enlistee, and humanist celebrant, for an in-person connective chat on the relationship between music and coding, the quality-of-life implications of ever-evolving home automation, an intro to humanist celebrancy, and more.
Catherine is a good friend of the Jupiter Broadcasting family and wife of Alex Kretzschmar, co-host of Self-Hosted.
Special Guest: Catherine Kretzcschmar.
Holiday bonus episode. s
Back in October we reported on work done by Google on FSCRYPT inline encryption support for allowing the Linux file-system encryption framework to handle the encrypt/decrypt more optimally for modern mobile SoCs with inline encryption hardware. It's looking like that work might be ready to go now for Linux 5.6 after missing out on the 5.5 cycle.
We've been covering Intel's Tiger Lake hardware enablement for Linux since the early patches were posted this summer and that quickly followed with Jasper Lake open-source patches for that future line of Tremont-based Atom SoCs. The Jasper and Tiger Lake enablement is continuing with the Linux 5.6 cycle getting underway around the start of February.
Already for Linux 5.6 we have noted more Intel Tiger Lake and Jasper Lake graphics driver pieces coming together, mostly on the Tiger Lake side. But other areas of the Linux kernel continue to be wired up. The newest material I am seeing queued ahead of the Linux 5.6 merge window are the power management pieces.
Among the items coming on the PM side for Jasper/Tiger Lake with Linux 5.6 are adding Jasper Lake support to the existing PowerCap / RAPL driver for power-capping and run-time average power-limiting. The work does reaffirm that Jasper Lake is Tremont based, part of the Atom family, and for mobile platforms.
For those looking for some fresh reference numbers on the impact of using GCC's Profile Guided Optimizations (PGO), here are some benchmark runs looking at the GCC 10 PGO performance on an Ubuntu 19.10 workstation built around the Ryzen Threadripper 3960X.
I also have some fresh GCC 10 LTO optimization benchmarks coming in the next few days but using the PGO PTS module I ran some fresh benchmarks with just "-O3 -march=native" and then again after making use of profile guided optimizations for the benchmark runs.
Announced last month was the Athlon 3000G as a ~$49 processor based on Zen and featuring two cores / four threads and Vega 3 graphics. This 35 Watt TDP processor has finally begun appearing at more Internet retailers in stock last week and I was able to pick up one of these budget CPUs for $55 USD. Here are benchmarks of the Athlon 3000G on Ubuntu Linux compared to other low-end and older processors.
[...]
The Athlon 3000G isn't as exciting as the recent high-end Zen 2 desktop CPUs, but for those looking for a new CPU on a tight budget or just needing a low-end, low-power CPU for a storage box or other lightweight tasks, the Athlon 3000G delivers a ton of value.
Desktop users have always cared about software optimization, and as soon as many-core CPUs began to hit the market, it became immediately clear that not all software is developed alike. In the classic Linux vs. Windows performance debate, another element is thrown in with the fact that software optimizations can differ between OSes, ultimately making it difficult to predict which route would be quicker.
When AMD released its second-gen Ryzen Threadripper last year, its top-end model offered 32 cores, and 64 threads. At launch, many reviewers encountered performance anomalies, but in some cases, those anomalies proved to be nonexistent in Linux. An explicit example we remember is with 7-zip; its built-in benchmark didn’t scale well with the 2990WX in Windows, but did just fine in Linux.
Since the release of those (now last-gen) Threadrippers, both Linux and Windows have received updates to improve threading on big CPUs, and improve performance on their respective platforms in general. Windows has clearly needed more polish than Linux, given that it wasn’t until this past summer when AMD could consider its quest for optimal threading complete. That contrasts with our entire Linux suite scaling pretty well from the get-go.
For open-source photographers, there is an exciting new present under the Christmas tree... The huge Darktable 3.0 software package with almost three thousand commits over Darktable 2.6. The Darktable 3.0 RAW photography software suite comes with several big improvements to help in managing your holiday photos or for any occasion.
Of late, software giants are incorporating Linux into their standard operating system in one way or the other. Microsoft brought the Linux subsystem on Windows 10 and now Google has introduced Linux on Chromebooks with full-fledged Terminal and Container support. While the Linux project on Chrome OS is still in beta, the results are quite promising. If you are an IT administrator or a software developer or studying computer programming, the addition of Linux on Chromebook can be a boon for you. So, let’s go ahead and learn how to use Linux on a Chromebook right from the setup to package installation.
The Alpine Linux project is pleased to announce the immediate availability of version 3.11.2 of its Alpine Linux operating system.
This is a bugfix release that fixes missing dtbs files for rpi and missing initramfs image for netboot.
The full lists of changes can be found in the git log and bug tracker.
Last month, the Fedora Council had a face-to-face meeting in Prague. While we were there, Miro HronÃÂok invited us to Prague Pyvo—the local Python meetup. Jona Azizaj, Matthew Miller, and I made the trip across town for what ended up being a Fedora-themed night.
I gave a talk called “Fedora and the Future of Operating Systems”. The presentation gives a brief introduction to the history of software distribution—from the bad old days of having to compile everything from source to the advent of binary packages and repositories. Operating systems have become reliable (not boring!), so distributions are focusing on solving higher-level problems. The future of Fedora includes new approaches like Fedora Silverblue, Fedora CoreOS, and Fedora IoT, as well as concepts like Fedora Modularity.
Next up, Matthew did an open floor discussion of the Fedora community generally and what it’s like to lead such a large, complicated project. The audience had a lot of great questions. Some of them were Fedora users and there were also several contributors. Almost everyone was at least passingly familiar with Fedora.
Fedora continued serving at the forefront of many Linux distribution innovations over the past decade and the largely Red Hat driven platform continued contributing their work back upstream from countless GNOME features to hardware improvements/fixes, UEFI "flicker-free boot" crossing the finish line, good hardware firmware updating support, and much more.
We have seen various types of business cards with fun features such as emulating USB flash drives or wireless transceivers. But an engineer managed to create a Linux-powered business card and I think all open-source enthusiasts would agree that it’s pretty cool.
George Hilliard, an embedded systems engineer by profession, decided to make a barebones Linux board in a business card form factor. It is a complete, minimal ARM computer that runs customized Linux firmware built with Buildroot.
Raspberry Pi Commands are useful for operating Raspberry Pi, which can be referred to as the most popular single-board computer around the world. It enables us, especially the students and developers, to work on a wide range of applications. From building a prototype to developing an existing software, Raspberry Pi can provide the support. But when one starts using a black or green screen rather than a colorful GUI in windows or mac, it becomes terrifying for most people. But there are many raspberry pi commands available that can be used from the terminal window to navigate and run applications on your pi device. Although it is not a convenient system, it can give you the power to have more control over your system and the Linux environment, as well.
STM32 “Blue Pill” is a popular, and cheap (>$2) development board based on STMicro STM32F103C8T6 Arm Cortex-M3 microcontroller and programmable with the Arduino IDE.
In November, we shipped the Birch batch of Librem 5, fixed audio routing, made changes to various apps and shared Librem 5 at various meetups and talks.
A couple of other articles appeared about software development: Oxidizing Squeekboard described the use of the Rust programming language in the Librem 5’s virtual keyboard, and the Linux 5.4 report covered Purism’s contributions to Linux 5.4.
The software initially included with Birch was tagged, ready to be installed on the phones that shipped out. The built-in software is provided as part of the amber-phone distribution of PureOS, meaning that the core applications are automatically updated if the user enables updates.
On a similar note, the Librem 5 Development policy document was created to discuss how core software development is done for the phone’s system software. While this is aimed at those working for Purism, it is also of interest to the wider community around the Librem 5.
[...]
Work continues to improve power consumption by implementing devfreq driver which allows the frequency of the I/O buses to be reduced. This involved changes to the u-boot-builder tool and the trusted firmware. Changes to the kernel to avoid problems with the display at low frequencies as well as a workaround to adjust frequencies when the power key is pressed also try to find a balance between usability and power saving.
Efforts to save power also involve implementing busfreq support, where the speed of the DDR memory can be reduced as needed. This involved making it work on the devkit.
An issue where the display would be shifted after a resume was fixed.
Support for Bluetooth audio has been enabled, making it possible to use Bluetooth headsets.
The U-Boot bootloader was updated for phones in the Birch shipment.
Changes to the display stack were backported to Linux 5.3 so that the mxsfb driver could be used.
The flashing scripts were updated for Birch devices, dropping the recovery U-Boot image, updating them for the unified kernel and U-Boot and adding support for the board types in the flashing tool.
We currently have quite low storage limits. Our goal for the first quarter of 2020 is to allow paying subscribers to upgrade their storage capacity. This will involve some boring work in the middleware layer, but lays the foundation for Librem Sync and Librem Files, which we hope to release by mid-year.
[...]
We have begun the very long road to getting all the software we use (clients and server applications) packaged in Debian, our upstream operating system, so that anyone running a Debian-derived system can apt install any service or client. We aim to make any home-baked software “flagship-friendly but vendor-neutral”, so there will be sensible defaults for the librem.one domain, but you will always be able to reconfigure the packages to target an alternate domain. Or, for those that like a challenge, you could release your own distribution preconfigured to a service you run.
Purism has shared an update on their software work for the Librem 5 Linux smartphone over the course of last month.
Most notably they got audio routing to work so phone calls can work out properly. But they are still battling power consumption and other software work to at least make the device seem more like beta quality.
- Fixing audio routing for the Librem 5 Birch batch, allowing this Linux smartphone to actually serve as a working phone. Telephone calls now appear to be working reliably.
If you’ve read our list of Raspberry Pi alternatives, you might have come across VIM by Khadas.
China-based Khadas is becoming increasingly popular for its single board computers (SCB). Apart from the generic do-it-yourself (DIY) VIM series, Khadas also has Tone boards that can be utilized for DJing and Edge boards for AI and other related projects.
As discussed in Raspberry Pi projects, one of the most popular use of a single board computer is to use it as a media center. You can turn your TV in more than just a smart TV (without being monitored) and play local music, videos, pictures and even games on your TV. You can also watch streaming services through these media center.
You can always configure VIm (or any other SCB) as a media center. It’s a good DIY exercise but not everyone would like it.
TenFourFox Feature Parity Release 18 beta 1 is now available (downloads, hashes, release notes). As promised, the biggest change in this release is to TenFourFox's Reader mode. Reader mode uses Mozilla Readability to display a stripped-down version of the page with (hopefully) the salient content, just the salient content, and no crap or cruft. This has obvious advantages for old systems like ours because Reader mode pages are smaller and substantially simpler, don't run JavaScript, and help to wallpaper over various DOM and layout deficiencies our older patched-up Firefox 45 underpinnings are starting to show a bit more.
In FPR18, Reader mode has two main changes: first, it is updated to the same release used in current versions of Firefox (I rewrote the glue module in TenFourFox so that current releases could be used unmodified, which helps maintainability), and second, Reader mode is now allowed on most web pages instead of only on ones Readability thinks it can render. By avoiding a page scan this makes the browser a teensy bit faster, but it also means that edge-case web pages that could still usefully display in Reader mode now can do so. When Reader mode can be enabled, a little "open book" icon appears in the address bar. Click that and it will turn orange and the page will switch to Reader mode. Click it again to return to the prior version of the page. Certain sites don't work well with this approach and are automatically filtered; we use the same list as Firefox. If you want the old method where the browser would scan the page first before offering reader mode, switch tenfourfox.reader.force-enable to false and reload the tab, and please mention what it was doing inappropriately so it can be investigated.
Reader mode isn't seamless, and in fairness wasn't designed to be. The most noticeable discontinuity is if you click a link within a Reader mode page, it renders that link in the regular browser (requiring you to re-enter Reader mode if you want to stay there), which kind of sucks for multipage documents. I'm considering a tweak to it such that you stay in Reader mode in a tab until you exit it but I don't know how well this would work and it would certainly alter the functionality of many pages. Post your thoughts in the comments. I might consider something like this for FPR19.
Israel-based start-up xs:code recently launched its monetization platform for open-source projects. Taking a new approach, the company is helping solve the sustainability challenges of open-source software by incentivizing developers to maintain their code by charging companies for using it.
Chinese tech firms are not known for releasing the kernel sources of their devices in keeping with GNU licensing requirements, but Realme has been a notable exception. Ever since its inception last year, the company has been consistently wooing power users by encouraging third-party development on its devices. Keeping up with the practice, the company has now released the kernel sources of the Realme X2 on Github, enabling developers to start their work on TWRP custom recovery and custom ROMs.
[...]
Coming back to the Realme X2, now that the kernel source codes are on Github, we expect some cool third-party developments for the device, including custom kernels and ROMs. The X2 was only launched in India last week, but has already gained a large following among users looking for an affordable mid-range phone. So if you’re one of those who already snapped up the device or are planning to do so, you will be happy to know that third-party development is probably already in the works.
An assembly language is a low-level programming language for a computer, or other programmable device. Assembly language is used by almost all modern desktop and laptop computers. It is as close to writing machine code without writing in pure hexadecimal. It is converted into executable machine code by a utility program referred to as an assembler.
Assembly language is infrequently used by programmers nowadays, but there are still good reasons to learn the language. It is the most powerful computer programming language available. While assembly language shares very little with high level languages (such as Java, C#, Python etc), and assembly languages for different CPU architectures often have little in common, it gives programmers the insight required to write effective code in high-level languages.
Assembly language is also used primarily for direct hardware manipulation, access to specialized processor instructions, or to address critical performance issues. Assembly is excellent for speed optimization.
The interpreters are based on much the same codebase, thus the double release.
We have worked with the python packaging group to support tooling around building third party packages for python, so this release changes the ABI tag for PyPy.
Based on the great work done in portable-pypy, the linux downloads we provide are now built on top of the manylinux2010 CentOS6 docker image. The tarballs include the needed shared objects to run on any platform that supports manylinux2010 wheels, which should include all supported versions of debian- and RedHat-based distributions (including Ubuntu, CentOS, and Fedora).
The CFFI backend has been updated to version 1.13.1. We recommend using CFFI rather than c-extensions to interact with C. The built-in cppyy module was upgraded to 1.10.6, which provides, among others, better template resolution, stricter enum handling, anonymous struct/unions, cmake fragments for distribution, optimizations for PODs, and faster wrapper calls. We reccomend using cppyy for performant wrapping of C++ code for Python.
The vendored pyrepl package for interaction inside the REPL was updated.
Dictionaries are one of the most important and useful data structures in Python. They can help you solve a wide variety of programming problems. This course will take you on a deep dive into how to iterate through a dictionary in Python.
PyData NYC just ended and I thought it would be good to collect my thoughts on metadsl based on the many conversations I had there surrounding it. This is a rather long post, so if you are just looking for some code here is a Binder link for my talk
The Zen of Python is called that for a reason. It was never supposed to provide easy-to-follow guidelines for programming. The rules are specified tersely and are designed to engage the reader in deep thought.
In order to properly appreciate the Zen of Python, you must read it and then meditate upon the meanings. If the Zen was designed to be a set of clear rules, it would be a fault that it has rules that contradict each other. However, as a tool to help you meditate on the best solution, contradictions are powerful.
[...]
The easiest way to make something less dense is to introduce nesting. This habit is why the principle of sparseness follows the previous one: after we have reduced nesting as much as possible, we are often left with dense code or data structures. Density, in this sense, is jamming too much information into a small amount of code, making it difficult to decipher when something goes wrong.
Reducing that denseness requires creative thinking, and there are no simple solutions. The Zen of Python does not offer simple solutions. All it offers are ways to find what can be improved in the code, without always giving guidance for "how."
Take a walk. Take a shower. Smell the flowers. Sit in a lotus position and think hard, until finally, inspiration strikes. When you are finally enlightened, it is time to write the code.
No matter where you are in your Python programming journey, Opensource.com's top Python articles from 2019 will help you along the way.
In this example, we will create a python function that will return an even number based on the Nth even number given.
Let say when we enter one into that function, the function will return 0 because the first even number is 0. If we enter two into that function, the function will return 2 because the second number of even numbers is 2. Besides that, we will also need to take care of the number that is smaller than 1 which is an invalid entry as one is the very first even number.
Logging, saving records to the database, and accessing files are all common tasks a programmer works on. In each of those cases, date and time play an important role in preserving the meaning and integrity of the data. Programmers often need to engage with date and time.
In this article we will learn how to get the current date and time using Python's builtin datetime module. With that module, we can get all relevant data in one object, or extract the date and time separately.
We will also learn how to adjust our date and time for different timezones. Finally, we'll look at converting datetime objects to the popular Unix or Epoch timestamps.
In Linux there are couple of ways to remove white space in text. I will talk mainly about awk, sed and Python CLI tool to manipulate in Linux.
Lets start with sed.
sed is a great command line utility in Linux. There is whole bunch of things you can do with sed but for the purpose of this artcile, we would talk sed regex for removing space in strings or text. Checkout online utility to remove whitespace.
Roughly one year ago, Silicon Labs released a publicly available Z-Wave SDK and a Raspberry Pi 3 Image to make it easier to work with the wireless protocol targetting home automation.
Google Chrome and crashing, they go hand in hand! Aw, Snap! error might have hampered your way to doing something important multiple times. With Chrome 78, it expanded massively that users filled the support forum with hundreds of concerns.
In case you are not aware, the acknowledgement already came out from Mountain View. And, they found out that multiple antivirus applications are raising incompatibility issues on version 78. Moreover, the company is working in collaboration with those software vendors to make things right.
[...]
As you can see in the image given above, it has upset Linux users as well. One would think it is the same issue and disabling the real-time protection of the security software might clear the air. Interestingly, most of the concerned users have NOD32 installed.
Here comes the interesting part. Despite turning off the protection, people could see Google Chrome crashing over and over again. Have a look at the similar concern coming from an Ubuntu user (another one here).
Security updates have been issued by CentOS (freetype, kernel, nss, nss-softokn, nss-util, and thunderbird), Mageia (ghostpcl, libmirage, and spamassassin), Oracle (fribidi), and SUSE (mariadb-100, shibboleth-sp, and slurm).
The decision on November 14th this year followed a formal complaint by the former Consul of Ecuador Fidel Narvaez, in October 2018, challenging the newspaper to substantiate its assertion, which he described as “false and defamatory”. A correction was published by The Guardian last Friday, December 20th.
The Review Panel, has determined that the article “Revealed: Russia’s Christmas Eve plot to smuggle Assange out of UK“, breached the “Accuracy” principle of the Code of Conduct of the Press Complaints Commission in England.
The Review Panel is composed of John Willis, the former Guardian News & Media external ombudsman, Bafta deputy chairman and chief executive of Mentorn Media; Geraldine Proudler, partner at Olswang and board member of the Guardian Foundation; the legal and journalism academic Richard Danbury, and Elinor Goodman, former political editor of Channel 4 News, and one of six panel members at the Leveson inquiry