Language Selection

English French German Italian Portuguese Spanish

today's howtos and programming bits

Filed under
Development
HowTos
  • CentOS 8 Package Management with DNF on the Command Line
  • AdamW’s Debugging Adventures: “dnf is locked by another application”
  • Managing user accounts with Cockpit
  • Download Ubuntu 19.10 ISO image to install on VirtualBox VM
  • GNU poke: Dealing with alternatives - Unions in Poke

    Computing with data whose form is not the most convenient way to be manipulated, like is often the case in unstructured binary data, requires performing a preliminary step that transforms the data into a more convenient representation, usually featuring a higher level of abstraction. This step is known in computer jargon as unmarshalling, when the data is fetch from some storage or transmission media or, more generally, decoding.

    Once the computation has been performed, the result should be transformed back to the low-level representation to be stored or transmitted. This is performed in a closing step known as marshalling or, more generally, encoding.

    Consider the following C program whose purpose is to read a 32-bit signed integer from a byte-oriented storage media at a given offset, multiply it by two, and store the result at the same offset.

  • Android NDK r21 moves to beta

    Android announced that NDK r21 is now in beta. Android NDK is a toolset for implementing parts of an app in native code. The release — which is the first long term support release — includes improved defaults for better security and performance.

    One of the key features in the release is an update to GNU Make to version 4.2, which provides a number of bug fixes, and enables ‘–output-sync’ to avoid interleaving output with error messages, the team explained. This is enabled by default with ndk-build.

    Additionally, GDB, the GNU project debugger, has been updated to version 8.3, which includes fixes for debugging modern Intel CPUs.

  • What is the history behind C Programming and Unix?

    If you think C programming and Unix are unrelated, then you are making a big mistake. Back in the 1970s and 1980s, if the Unix engineers at Bell Labs had decided to use another programming language instead of C to develop a new version of Unix, then we would be talking about that language today.

    The relationship between the two is simple; Unix is the first operating system that is implemented with a high-level C programming language, got its fame and power from Unix. Of course, our statement about C being a high-level programming language is not true in today’s world.

    This article is an excerpt from the book Extreme C by Kamran Amini. Kamran teaches you to use C’s power. Apply object-oriented design principles to your procedural C code. You will gain new insight into algorithm design, functions, and structures. You’ll also understand how C works with UNIX, how to implement OO principles in C, and what multiprocessing is.

More in Tux Machines

Audiocasts/Shows: Linux in the Ham Shack, Jill Bryant Ryniker and Python Podcast

  • LHS Episode #310: DMR Deep Dive

    Welcome to Episode 310 of Linux in the Ham Shack. In this episode, the hosts take an in-depth look at the world of Digital Mobile Radio, otherwise known as DMR. It's a topic that could take volumes or multiple episodes but the idea here is to give you enough information to understand the basics of the technology, acquire appropriate hardware and get on the air using digital FM. We hope that has been accomplished. Thank you for listening.

  • Brunch with Brent: A Chat with Jill Bryant Ryniker | Jupiter Extras 31

    Brent sits down with Jill Bryant Ryniker, long time linux aficionado, for a connective conversation exploring her deep involvement in linux and open source, from community to professional animation and more. Jill wears many complimentary hats, a few of which include: co-host of Linux Weekly Daily Wednesday. regular community guest on Linux Unplugged, Linux Chicks LA co-organizer, professional animator and teacher, ...and more! Grab a seat and join us..

  • Automate Your Server Security With GrapheneX

    The internet is rife with bots and bad actors trying to compromise your servers. To counteract these threats it is necessary to diligently harden your systems to improve server security. Unfortunately, the hardening process can be complex or confusing. In this week's episode 18 year old Orhun Parmaksiz shares the story of how he and his friends created the GrapheneX framework to simplify the process of securing and maintaining your servers using the power and flexibility of Python. If you run your own software then this is definitely worth a listen. Summary The internet is rife with bots and bad actors trying to compromise your servers. To counteract these threats it is necessary to diligently harden your systems to improve server security. Unfortunately, the hardening process can be complex or confusing. In this week’s episode 18 year old Orhun Parmaksiz shares the story of how he and his friends created the GrapheneX framework to simplify the process of securing and maintaining your servers using the power and flexibility of Python. If you run your own software then this is definitely worth a listen.

Mozilla: Librsvg, Bytecode Alliance, and Extensions in Firefox 71

  • CSS in librsvg is now in Rust, courtesy of Mozilla Servo

    Summary: after an epic amount of refactoring, librsvg now does all CSS parsing and matching in Rust, without using libcroco. In addition, the CSS engine comes from Mozilla Servo, so it should be able to handle much more complex CSS than librsvg ever could before.

  • Librsvg Continues Rust Conquest, Pulls In CSS Parsing Code From Mozilla Servo

    For about three years now GNOME's SVG rendering library has been transitioning to Rust. This library, librsvg, now makes further use of Rust around its CSS parsing code and Mozilla's Servo is doing some of that heavy lifting. Librsvg is employing the CSS engine from Mozilla's Servo engine in order to be written in Rust while also having the benefit of being able to handle more complex CSS code than the previous implementation.

  • Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly

    Today we announce the formation of the Bytecode Alliance, a new industry partnership coming together to forge WebAssembly’s outside-the-browser future by collaborating on implementing standards and proposing new ones. Our founding members are Mozilla, Fastly, Intel, and Red Hat, and we’re looking forward to welcoming many more.

  • New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing

    The Bytecode Alliance is a newly-formed open source community dedicated to creating new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI). Mozilla, Fastly, Intel, and Red Hat are founding members. The Bytecode Alliance will, through the joint efforts of its contributing members, deliver a state-of-the-art runtime environment and associated language toolchains, where security, efficiency, and modularity can all coexist across the widest possible range of devices and architectures. Technologies contributed and collaboratively evolved through the Alliance leverage established innovation in compilers, runtimes, and tooling, and focus on fine-grained sandboxing, capabilities-based security, modularity, and standards such as WebAssembly and WASI.

  • Mozilla + Intel + Red Hat Form The Bytecode Alliance To Run WebAssembly Everywhere

    Mozilla, Fastly, Intel, and Red Hat have announced the Bytecode Alliance as a new initiative built around WebAssembly and focused on providing a secure-by-default bytecode that can run from web browsers to desktops to IoT/embedded platforms. "Together, we’re putting in solid, secure foundations that can make it safe to use untrusted code, no matter where you’re running it—whether on the cloud, natively on someone’s desktop, or even on a tiny IoT device," announced Mozilla.

  • Extensions in Firefox 71

    Firefox 71 is a light release in terms of extension changes. I’d like to tell you about a few interesting improvements nevertheless. Thanks to Nils Maier, there have been various improvements to the downloads API, specifically in handling download failures. In addition to previously reported failures, the browser.downloads.download API will now report an error in case of various 4xx error codes. Similarly, HTTP 204 (No Content) and HTTP 205 (Reset Content) are now treated as bad content errors. This makes the API more compatible with Chrome and gives developers a way to handle these errors in their code. With the new allowHttpErrors parameter, extensions may also ignore some http errors when downloading. This will allow them to download the contents of server error pages.

Benchmarks Of JCC Erratum: A New Intel CPU Bug With Performance Implications On Skylake Through Cascade Lake

Intel is today making public the Jump Conditional Code (JCC) erratum. This is a bug involving the CPU's Decoded ICache where on Skylake and derived CPUs where unpredictable behavior could happen when jump instructions cross cache lines. Unfortunately addressing this error in software comes with a performance penalty but ultimately Intel engineers are working to offset that through a toolchain update. Here are the exclusive benchmarks out today of the JCC erratum performance impact as well as when trying to recover that performance through the updated GNU Assembler. The microcode update prevents jump instructions from being cached in the Decoded Icache when those instructions cross a 32-byte boundary or where they end on a 32-bit boundary. Due to that change there will be more misses from the Decoded ICache and switches back to the legacy decode pipeline -- resulting in a new performance penalty. The Decoded ICache / Decoded Streaming Buffer has been around since Sandy Bridge but only Skylake and newer is affected by this erratum. Cascade Lake is affected by this erratum but Ice Lake and future iterations appears unaffected. The erratum notice officially lists Amber Lake, Cascade Lake, Coffee Lake, Comet Lake, Kaby Lake, Skylake, and Whiskey Lake as affected generations for the JCC bug. Read more

Games: Epic Games, Gravity Ace, American Truck Simulator and PPSSPP

  • Epic Games acquires Quixel with its enormous library of 3D and 2D assets

    Epic Games have reached down the back of the sofa and pulled up enough loose change to acquire Quixel. For those not familiar, Quixel are responsible for some seriously high quality 3D and 2D assets and their pretty well-known for their "Megascans". These super-high quality assets are used in plenty of AAA games, films and more. Some of what they've made is truly impressive too and Quixel have well over ten thousand assets people can use with a huge assortment of items. Since they're now owned by Epic, their library of assets are being made completely free to Unreal Engine users. Ten of these high-res packs have already been made free on the Unreal Engine Marketplace, with more coming in future. However, they're not stopping developers using them elsewhere and for those who are, the subscription prices have been lowered and the resolution cap was removed.

  • Gravity Ace, a gorgeous retro 2D twin-stick shooter that looks like Thrust on some serious steroids

    Thrust is that you? Gravity Ace, a new pixel-art twin-stick shooter in development by John Watson is looking quite incredible and it's coming to Linux. Being made in the FOSS game engine Godot Engine, it's actually inspired by both the classics Thrust and Gravitar. Obviously graphically a huge amount better since they're pretty old, Gravity Ace certainly looks like it will get quite intense and you can even try it out right now.

  • How To: Fix American Truck Simulator not displaying on Linux with the latest update

    It seems the latest update of American Truck Simulator has come with a few issues, like the Linux version playing audio but seemingly displaying nothing. Here's a fix for you. Curiously, it grabs your cursor and plays audio as if it's working. However, when you ALT+TAB (at least on the KDE desktop), it will then show a very tiny window so it seems something is wrong with how they're initially detecting screens since the latest update.

  • How to Play PSP Games in Linux with PPSSPP

    PPSSPP is one of the easiest to use PSP emulators. Theoretically, you can run it, select a game file, and almost immediately you’ll see most of PlayStation Portable’s titles run on your screen without a hitch. Learn how you can install PPSSPP in Linux and customize how it works. If you have a powerful computer, you can also implement upgrades that can dramatically improve how all games are presented and perform in PPSSPP.