Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development

  • LLVM Clang 12 Adds Support For Vectorization Using Glibc's Vector Math Library - Phoronix

    Upstream LLVM/Clang now supports making use of the vector math library found within the GNU C Library.

    Clang 12 will allow for vectorization using libmvec via the -fvec-lib=libmvec compiler option.

  • Notes to self on frama-c | Richard WM Jones

    Frama-C is a giant modular system for writing formal proofs of C code. For months I’ve been on-and-off trying to see if we could use it to do useful proofs for any parts of the projects we write, like qemu, libvirt, libguestfs, nbdkit etc. I got side-tracked at first with this frama-c tutorial which is fine, but I got stuck trying to make the GUI work.

  • Why I Dislike Switch Statements

    Of course this is a contrived example, but readers will hopefully agree it's representative of the construct.

  • Setup - Full Stack Tracing Part 2 - KDAB

    If you’ve read the first article in this series, you’ll know what full stack tracing is and why you definitely want it. This time, we’ll show you how to setup full stack tracing on your Linux system. There are two steps – first get everything configured to capture a trace, and then view and interpret the trace.

    Setup full stack tracing with a bit of kernel help

    To capture a trace, we’ll be using LTTng (Linux tracing toolkit next generation) in our examples. LTTng captures tracepoints with minimal overhead. This is something you definitely want, as too much extra CPU introduced by tracing can change the system’s behavior, even causing it to fail unpredictably. Another factor in LTTng’s favor is that it’s well supported by the open source community.

    LTTng was designed to record kernel level events. However, you’ll also want to use its user space tracepoints to capture application level events. That will give you consistent visibility, regardless of where execution moves throughout the software stack. User space tracepoints is critical to the setup of full stack tracing as it lets you integrate application, Qt, and kernel tracepoints together in a single view.

  • Mariuz's Blog: Firebird 3.0.7 sub-release is available

    Firebird Project is happy to announce general availability of Firebird 3.0.7 — the latest point release in the Firebird 3.0 series.This sub-release offers many bug fixes and also adds a few improvements, please refer to the Release Notes for the full list of changes.Binary kits for Windows, Linux, Mac OS and Android platforms are immediately available for download.All users of Firebird v3.0.6 are

  • Use of self or $this in PHP – Linux Hint

    In PHP object-oriented programming, we have the self keyword and $this variable that is used for different purposes. The self keyword represents current and static members of the class. While the $this variable represents current object and non-static members of the class. More about these are discussed in this article.

  • 4 C programming courses for every skill level

    Even with so many other system-level languages to choose from, C remains the popular choice. Many key projects—such as the Linux kernel and the Python runtime—still use C, and they will likely do so indefinitely. For some fields of computing, like embedded programming, C is a must.
    And there has never been a better time to learn C. Resources abound, from books to guided courses. Here we’ll look at four major online course offerings for learning C programming, each aimed at different levels of user and offering different approaches. For instance, one combines learning C with learning Linux, while another teaches C and C++ together.

  • rand() Function in C Language – Linux Hint

    In the C language, the rand() function is used for Pseudo Number Generator(PRNG). The random numbers generated by the rand() function are not truly random. It is a sequence that repeats periodically, but the period is so large that we can ignore it. The rand() function works by remembering a seed value that is used to compute the next random number and the next new seed. In this article, we are going to discuss in detail how random numbers can be generated using the rand() function. So, let’s get started!

  • A bug by any other name – Open Source Security

    This tweet from Jim Manico really has me thinking about why we like to consider security bugs special. There are a lot of tools on the market today to scan your github repos, containers, operating systems, web pages … pick something, for security vulnerabilities. I’ve written a very very long series about these scanners and why they’re generally terrible today but will get better, but only if we demand it. I’m now wondering why we want to consider security special. Why do we have an entire industry focused just on security bugs?

    Let’s change the conversation a little bit. Rather than focus on security bugs, let’s ask the question: Which bugs in a given project should we care about?

    There are of course bugs an attacker could use to compromise your system. There are also bugs that could result in data loss. Or bugs that could bring everything down. What about a bug that uses 10% more CPU? Every piece of software has bugs. All bugs are equal, but some bugs are more equal than others.

    We are at a time in software history where we have decided security bugs are more equal than other bugs. This has created entire industries around scanning just for security problems. Unfortunately the end goal isn’t always to fix problems, the goal is often to find problems, so problems are found (a LOT of problems). I think this is a pretty typical case of perverse incentives. You will always find what you measure. The pendulum will swing back in time, maybe we can help it swing a little faster.

  • Why you should use ppport.h in your XS code modules | Karl Williamson [blogs.perl.org]
    
    
    
    
    The answer comes down to two words: Security and Reliability.
    As a bonus, less work on your part.
    
    
    
    
    It's surprising to find that there are modules on CPAN that aren't using
    ppport.h that could stand to benefit from it.
    
    
    
    
    ppport.h is a file that is part of the Devel::PPPort distribution. As you
    know, Perl has evolved over the years, adding new features, and new API for XS
    writers to use. Some of that is to support the new features, and some to make
    tasks easier to accomplish. ppport.h implements portions of the API that
    people have found desirable to have when a module gets installed in a Perl that
    was released before that API element was created. You can write your module
    using the latest API, and have it automatically work on old Perls, simply by
    #including ppport.h in your XS code. ppport.h generally provides support for
    an API element as is reasonably practicable, with many supported to 5.03007.
    
    
    
    
    Importantly, but often overlooked, ppport.h can override buggy early Perl
    implementations of an API element. By using it, you get fixed, proper
    behavior. That sure beats trying to reproduce a reported problem in your
    module that only happens in some ancient Perl, and then try to come up with a
    workaround in an area you aren't familiar with.
    
    
    
    
    This is especially important if your XS code interacts with Unicode in any way.
    Early versions of the Unicode standard and early Perls allowed things that we
    now know are potential attack vectors. Right now, someone could be using your
    module to hack into systems, so you are actually being negligent if you don't
    use ppport.h.
    
    
    
    
    If your XS code has preprocessor #if statements that check for the existence of
    functions, macros, etc, that are only in later perls, you can generally avoid
    that by simply using ppport.h
    

More in Tux Machines

The 7 Best Wireless File Transfer Apps on Linux

Do you have some files that need moving between your Linux devices, or maybe between a Linux device and another platform, but you don't have or don't want a wired connection? As a Linux user, you have plenty of options. We're going to highlight several apps, across several different file transfer protocols, that will let you connect to different platforms and painlessly transfer your files. Read more

Games: Bit - Animation Editor, Steam Play Proton 5.13, Unigine 2.13 and More

  • Bit - Animation Editor is now supported on Linux and it looks seriously slick | GamingOnLinux

    Bit - Animation Editor is a very interesting tool to help people compose and design animated pixel art. Created by the two-person Swedish indie game studio Morgondag, the team behind the 2015 chilled-out space odyssey RymdResa and the 2017 clicking-puzzler imprint-X. Morgondag try to set it apart from other tools, mentioning clearly it's "not a drawing tool". You're not drawing pixel-by-pixel or anything like that. Instead, you bundle together all sorts of included assets to create something new and then export it ready for game engines for games, gifs and more. The example they gave when announcing Linux support to us on Twitter was somewhat amusing too...

  • Chaotic track-building co-op game Unrailed! gets PC cross-play with the Switch | GamingOnLinux

    Have a friend or two that mainly play on the Nintendo Switch? Here's a good choice that you can now play with them with cross-play supported across Linux, macOS, Windows and now the Switch too. In a short and sweet announcement, Indoor Astronaut and Daedalic Entertainment mentioned that as of the small update released on November 23 it's now all hooked up. So you can get building a train-track, chop down trees, do a little mining and have plenty of laughs with friends in Unrailed! For those who haven't played it the idea is simple: build the track as far as you can, without letting your train fall of a get destroyed. It's a lot more difficult than it sounds, as you're against an ever-changing map along with various obstacles. As you progress you get to upgrade your train with better and more interesting parts like auto-mining, lights, faster building or more storage and lots more. The train gets gradually faster too, so the further you go the more challenging it is.

  • Kerbal Space Program 1.11 will let you fix up your craft during a spacewalk | GamingOnLinux

    Kerbal Space Program 1.11: Some Reassembly Required will be arriving later this Winter, with it some major new features and it sounds super exciting. With it comes a new EVA Construction Mode, allowing your Kerbals to repair and reassemble your craft while outside. Just like a real spaceperson, you will do spacewalks and get to work. You will have similar tools as in the Vehicle Assembly Building and the Spaceplane Hangar with place, rotate, and move and you can visualize the center of mass, center of thrust, and the center of lift for a vessel. There's some obvious limitations like your range to parts, weight and more. The game is also not paused, so you have to try and not crash while doing so if your craft is moving.

  • The fab strategy sim Mini Metro now has full Steam Workshop support | GamingOnLinux

    After recently expanding the game with a free update with Nigeria and Chile, Dinosaur Polo Club have given users another reason to come back to their excellent strategy sim. This update comes six years after the original release, so it seems good things come to those who wait. Adding in Steam Workshop support, you can now make your own maps and share them with everyone. They also crafted detailed instructions on how to actually get map-making, which doesn't seem to be too complicated. Everything is done through plain JSON files with no special tools needed.

  • Valve updates the Steam Linux Container Runtime for Proton 5.13, helps tools like MangoHud | GamingOnLinux

    With the Steam Play Proton 5.13 compatibility tool being a major upgrade, along with it now using the Steam Linux Container Runtime, it did come with some annoying issues that they're now trying to solve. One of the problems was that since the Windows games are contained and isolated from your system, you couldn't then run tools like MangoHud or the post-processing layer vkBasalt. Valve have now updated the container systems, to allow them to import Vulkan layers from the host system.

  • Unigine 2.13 Continues Enhancing Their OpenGL Engine While Still Porting To Vulkan - Phoronix

    Unigine 2 remains one of the most visually stunning game and simulation engines out there. That's even with still using OpenGL (or Direct3D 11 also on Windows) while their Vulkan renderer remains in the works. Unigine 2.13 is out this week as their latest iteration of this visually incredible engine with first-rate Linux support. Unigine 2.13 adds a GPU lightmapper tool, adds subpixel reconstruction anti-aliasing, even better looking 3D volumetric clouds, performance optimizations, tessellation improvements, new samples, and a variety of other engine improvements.

  • UNIGINE 2.13: GPU Lightmapper, Volumetric Clouds Upgrade, Better Anti-Aliasing, New Terrain Tools Preview - Unigine Developer
  • A pirate quartermaster is a very quirky game about pirate life - Linux version now up | GamingOnLinux

    A pirate quartermaster from developer Ivan Armandy released back in October, and now it's available and supported directly on Linux too. You're not the captain here, instead your job is to put yourself in the shoes of a quartermaster, the first mate of a pirate ship. Really though, you're responsible for everything and you will need to deal with the wishes of the captain and often contradicting their orders to appease the crew. The game has a surprising amount of everything, it's quite a detailed pirating adventure that needs you to learn and fast too. It even teaches you a little about sailing, in its own quirky fantasy sort of way. From setting up gun positions, to organising your crew, there's plenty of dialogue to read through and when it comes to ship to ship combat - it turns into a weird real-time typing game as you rush out orders to the crew.

today's howtos

  • How to Install ElkArte Forum with Apache and Let's Encrypt SSL on CentOS 8

    ElkArte is a free and open-source forum software based on Simple Machine Forum. In this tutorial, we will show you howto install ElkArte with Let's Encrypt SSL on CentOS 8.

  • How to Fix 'Repository does not have a release file' Error in Ubuntu

    When installing software on Ubuntu, sometimes you may be required to add third-party PPAs. Adding PPAs enables you to access software packages that have not been included in official Ubuntu repositories. Sometimes, when updating your system or installing software packages, you may run into an error indicating that the added PPA does not have a release file. This error is quite frustrating as it limits your ability to manage software packages in an efficient manner. In this guide, we will guide you on how you can resolve this issue and go back to using your system without an issue.

  • How To Install Dotnet Core on Ubuntu 20.04 LTS - idroot [Ed: If for some reason you wish to help Microsoft]

    In this tutorial, we will show you how to install Dotnet Core on Ubuntu 20.04 LTS. For those of you who didn’t know, The .NET Core is a free and open-source software framework and open-source software framework. It is developed by Microsoft. It is developed by Microsoft. .NET Core is a very powerful framework. It is usually used to develop web applications.

  • How to install steam on ArcoLinux | Arcolinux.com

    The motto of ArcoLinux is Learn, have fun and enjoy. This is the have fun part for sure. We install steam via the terminal. The desktop you install steam on does not matter.

  • How to manage Linux permissions for users, groups, and others | Enable Sysadmin

    How to manage permissions and ownership for users, groups, and all others to resources such as directories and files.

  • How to set up DaVinci Resolve for High Resolution displays in Linux - Real Linux User

    The non linear video editor DaVinci Resolve on Linux is an incredible free tool, but does not give correct out of the box scaling for high resolution displays, so it will show an UI with very small icons and characters. Even on my 4K 32 inch monitor DaVinci Resolve is at first start up almost unusable, so if you have for example a smaller 27 inch monitor with the same 4K or higher resolution, the UI components are terribly small. In this short article I will show how you can change the scaling of DaVinci Resolve. So join me to see how to set up DaVinci Resolve for High Resolution displays in Linux.

Today in Techrights