Language Selection

English French German Italian Portuguese Spanish

Programming: LLVM, Python, C, Fuzzing, and GNU "Core Utilities"

Filed under
Development
  • LLVM 8.0 Drags On As An RC5 Now Gets Scheduled

    LLVM 8.0 had been expected for release prior to the end of February, but now as we approach the middle of March, this major compiler update along with associated sub-projects like Clang 8.0 have yet to see the light of day.

    LLVM 8.0 is running quite tardy at this point compared to its 27 February release target. On Friday a fourth release candidate was issued as their second unscheduled RC while this morning it was announced a fifth RC is likely coming out in the days ahead. LLVM release manager Hans Wennborg announced a fifth release candidate is on the way for picking up another new commit.

  • Working with LDAP and Active Directory
  • Mike Driscoll: PyDev of the Week: Maria Khalusova

    This week we welcome Maria Khalusova ( @mariakhalusova) as our PyDev of the Week! Maria works for JetBrains and will be speaking at AnacondaCON this April. If you’d like to catch up with her, you can check out Maria’s blog. Let’s take a few moments to get to know Maria better!

  • Programiz: Python RegEx
  • Linux C Programming Tutorial Part 9 - Variable Scopes

    If you are following our C programming tutorial series, you should be aware of the concept of variables. While we've discussed the basics of variables, there's another important aspect related to variables that we'll be discussing here: scope of variables.

  • Inside Kdenlive: How to fuzz a complex GUI application?

    Fuzz-testing, also called Fuzzing, is an essential tool inside the tool-box of software developers and testers. The idea is simple yet effective: simply throw a huge amount of random test inputs at the target program, until you manage to get it to crash or otherwise misbehave. This crashes are often revealing some defects in the code, some overlooked corner-cases that are at best annoying for the end-user if she stumbles upon them, or at worse dangerous if the holes have security implications. As part of our refactoring efforts of the main components of Kdenlive, this is one of the tools we wanted to use to ensure as much stability as possible.
    One of the most commonly used fuzzing library is called LibFuzzer, and is built upon LLVM. It has already helped finding thousands of issues in a wide range of projects, including well tested ones. LibFuzzer is a coverage based fuzzer, which means that it attempts to generate inputs that creates new execution paths. That way, it tries to cover the full scope of the target software, and is more likely to uncover corner-cases.
    Building a library (in this case Kdenlive’s core library) with the correct instrumentation to support fuzzing is straightforward: with Clang, you simply need to pass the flag -fsanitize=fuzzer-no-link. And while we’re at it, we can also add Clang’s extremely useful Address sanitizer with -fsanitize=fuzzer-no-link, address. This way, we are going to detect any kind of memory malfunction as soon as it occurs.

  • 5 Popular Python Open-Source IDEs For Data Science Enthusiasts

    Integrated Development Environment (IDE) is the daily-used coding tool for a programmer which enables a complete set for Source Code.

  • Post Multipart Form Data in Python with Requests: Flask File Upload Example

    In this tutorial we'll demonstrate how to upload a file from a Python server to another server by sending a POST request with multipart/form-data using the Python requests library.

  • GNU Coreutils 8.31 Released With New basenc Command, Stat Prints File Creation Time

    A new release of the GNU "Core Utilities" is out that brings with it the new basenc command.

    The GNU Coreutils 8.31 release brings better handling of --version/--help arguments for a number of commands, the date command now supports the "+" conversion specification flag from POSIX.1-2017, sleep and other commands now accept floating point numbers in both the current and C locales, stat/tail are now familiar with Android's sdcardfs file-system, and a number of bug fixes,

    One change worth pointing out as well is that stat now can print file creation time when running on a capable file-system paired with Linux 4.11+ and Glibc 2.28+ for having the necessary bits for carrying the file creation time.

  • Become Queen Bee for a Day Using Python's Built-in Data Types

    Like many other nerds, I love word puzzles. I'm not always great at them, and I don't always have time to do them, but when I do, I really enjoy them.

    I recently discovered a new daily puzzle, known as "spelling bee", that the New York Times offers online. The idea is simple. There are seven different letters, one in the center of a circle and six around it. Your job is to make as many different words as you can from those seven letters. Each word must be at least four letters long, and each word also must contain the center letter. You can use each letter as many times as you want.

    So if the letters are "eoncylt", with a center letter of "y", some of the words you could create might be "cyclone", "eyelet" and "nylon".

    The online game gives you a score based on how many words you've made from the potential pool. If you get them all, you're awarded "queen bee" status.

    I do pretty well at this puzzle, but I've never managed to find all of the hidden words. Nevertheless, I have become queen bee on a few occasions. How? The answer is simple. I cheated. How? Using Python, of course.

    Now, cheating at games isn't necessarily the first order of business when it comes to programming. And cheating at word games in which you're competing against yourself is probably a sign of unhealthy competition. But, doing so also provides a great way to review some of the ways you can use Python's built-in data types and the ease with which you can process words and text.

More in Tux Machines

digiKam 7.7.0 is released

After three months of active maintenance and another bug triage, the digiKam team is proud to present version 7.7.0 of its open source digital photo manager. See below the list of most important features coming with this release. Read more

Dilution and Misuse of the "Linux" Brand

Samsung, Red Hat to Work on Linux Drivers for Future Tech

The metaverse is expected to uproot system design as we know it, and Samsung is one of many hardware vendors re-imagining data center infrastructure in preparation for a parallel 3D world. Samsung is working on new memory technologies that provide faster bandwidth inside hardware for data to travel between CPUs, storage and other computing resources. The company also announced it was partnering with Red Hat to ensure these technologies have Linux compatibility. Read more

today's howtos

  • How to install go1.19beta on Ubuntu 22.04 – NextGenTips

    In this tutorial, we are going to explore how to install go on Ubuntu 22.04 Golang is an open-source programming language that is easy to learn and use. It is built-in concurrency and has a robust standard library. It is reliable, builds fast, and efficient software that scales fast. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel-type systems enable flexible and modular program constructions. Go compiles quickly to machine code and has the convenience of garbage collection and the power of run-time reflection. In this guide, we are going to learn how to install golang 1.19beta on Ubuntu 22.04. Go 1.19beta1 is not yet released. There is so much work in progress with all the documentation.

  • molecule test: failed to connect to bus in systemd container - openQA bites

    Ansible Molecule is a project to help you test your ansible roles. I’m using molecule for automatically testing the ansible roles of geekoops.

  • How To Install MongoDB on AlmaLinux 9 - idroot

    In this tutorial, we will show you how to install MongoDB on AlmaLinux 9. For those of you who didn’t know, MongoDB is a high-performance, highly scalable document-oriented NoSQL database. Unlike in SQL databases where data is stored in rows and columns inside tables, in MongoDB, data is structured in JSON-like format inside records which are referred to as documents. The open-source attribute of MongoDB as a database software makes it an ideal candidate for almost any database-related project. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the MongoDB NoSQL database on AlmaLinux 9. You can follow the same instructions for CentOS and Rocky Linux.

  • An introduction (and how-to) to Plugin Loader for the Steam Deck. - Invidious
  • Self-host a Ghost Blog With Traefik

    Ghost is a very popular open-source content management system. Started as an alternative to WordPress and it went on to become an alternative to Substack by focusing on membership and newsletter. The creators of Ghost offer managed Pro hosting but it may not fit everyone's budget. Alternatively, you can self-host it on your own cloud servers. On Linux handbook, we already have a guide on deploying Ghost with Docker in a reverse proxy setup. Instead of Ngnix reverse proxy, you can also use another software called Traefik with Docker. It is a popular open-source cloud-native application proxy, API Gateway, Edge-router, and more. I use Traefik to secure my websites using an SSL certificate obtained from Let's Encrypt. Once deployed, Traefik can automatically manage your certificates and their renewals. In this tutorial, I'll share the necessary steps for deploying a Ghost blog with Docker and Traefik.