Language Selection

English French German Italian Portuguese Spanish

Development

Programming Programming

Filed under
Development
  • CAPLin framework to build a SocketCAN node application in C

    The SocketCAN functionality, combined with the can-utils programs, enable you to view, interact and analyze the CAN bus traffic on Linux. However, these tools are no match for high-end tools such as Vector CANalyzer and CANoe under Windows. I especially miss CAPL scripts on Linux. For this reason I developed the CAPLin framework. With CAPLin you can quickly build a SocketCAN node application in the C programming language.

  • [Old] Thoughts on how to find remote work in Cameroon

    Remote work is the new norm there has never been a time like this, where as a SE you can make more than a decent living. This isn’t a know-it-all kind of post, I just wanted to write a bit about my experience, but it’s way too long (6 months+) so I will just share what worked and not for me. Before I forget, this is mainly for people like me doing computer science for the sake of doing it. Not because someone forced us or whatever. In short, geeks I guess. If you’re like me the perspective of spam applying and writing corresponding CVs is not very appealing. So, if CS is just a means to an end - not that there’s something wrong with that - but this might rub you off the wrong way (and you guessed right, no, I don’t look forward to enter management to “escape” coding). The job landscape in Cameroon is… saddening. While everywhere else the supply exceeds the demand, here it’s the exact opposite, which inevitably leads to abuse. Also, if you are still a student, this might not be for you directly, you can still read it to be prepared but there are many opportunities for students and I talk a bit about GSoC here. That being said, let’s get started.

  • Emacs is a Lifestyle

    I think that perfectly captures the spirit of Emacs and the nature of its (most devoted) users. I’d even go a bit farther and make the claim that (using) Emacs is essentially a lifestyle (choice).

  • Uninitialized Stack Variables

    Finally, as we observe here once more, writing C leaves us (necessarily) at the whims of the compiler: FreeBSD 13.0-RELEASE happens to use clang, and gcc(1) would have failed in either of our two scenarios. So one question that arises is whether compilers should perhaps auto-initialize stack variables.

    clang has a discussion around this, as does gcc, but there does not seem to be an agreed upon conclusion. Considering the possible security implications, it does seem to me that it would be a Good Thing™ to at least move away from having uninitialized variables by default and instead requiring explicit requests from the programmer (say, by way of an attribute?) that a given stack variable not be initialized. But I honestly don't know what the performance impact of this would be.

    Either way, I'm going to make it a habit to memset(3) my structs going forward...

  • Testing

    I think about tests in terms of defense in depth, value-for-effort and debugging efficiency.

    Debugging efficiency is not something I see discussed often and it's the only place where I disagree slightly with Aleksey's post above. The more that happens between the cause of a bug and the actual test failure, the longer it takes to track down the bug. So I tend to write unit tests for code which is: [...]

  • Writing

    I have a file called 'ideas' where I write down potential projects or thoughts that might be worth writing about. Entries grow over time as I add more thoughts. The entry that eventually became Against SQL existed for over a year. Every time I encountered a new bizaare corner of the SQL I would make a quick note of it.

    Eventually one of the ideas will feel ready and I'll try to write it up in full. This can take anywhere from a few hours to a few weeks depending on what the goal of writing it is and how much research is required. Against SQL took something like 60-80 hours to write because I was trying to make a strong argument about a complicated and contentious subject. Why isn't differential dataflow more popular took maybe an hour or two because I just wanted to hear about other peoples experiences.

  • Property-Based Testing In Go

    Property-based testing can be a bit trickier to learn, and not every problem can be well tested in this manner, but it’s a powerful technique that’s well supported by the go std-lib (testing/quick) and that is under-utilized.

  • [Old] EP. #91: Open Source Security: with Dr. David A. Wheeler

    In episode 91 of The Secure Developer, Guy Podjarny speaks to Dr. David A. Wheeler, an expert in both open source and developing secure software. David is the Director of Open Source Supply Chain Security at the Linux Foundation and teaches a graduate course in developing secure software at George Mason University. Today’s discussion revolves around open source security (or OSS), in which David is an expert, not just from the perspective of consuming open source but also creating and even governing open source. Tuning in, you’ll learn about some of the primary security concerns in open source and the necessity to educate developers about secure software.

  • [Old] Managing Risks and Opportunities in Open Source with Frank Nagle & David A. Wheeler

    We start off on the topic of looking at metrics that are useful for identifying what’s going on in a Software Configuration Management system. David tells us what it is and if there’s a difference between building software and deploying it. Also, figuring out which components you’re going to bring in, to your overall system.

  • Toit open-source language claims to be 30x faster than MicroPython on ESP32 - CNX Software

    Developed by a team of former Google employees, Toit is a complete IoT platform with remote management, firmware updates for fleets of devices with features similar to the one offered by solutions such as balena, Microsoft Azure, or Particle edge-to-cloud platform.

    Toit currently works on ESP32 microcontrollers using lightweight containers, and after seeing existing high-level languages MicroPython and Javascript were not fast enough on low-end microcontrollers platforms, the team at Toit started to develop the Toit language in 2018, and has just made it open-source with the release of the compiler, virtual machine, and standard libraries on Github under an LGPL-2.1 license.

  • XOR Two Strings in Python

    You may have used many logical, arithmetic, and comparison operators within mathematics and programming while working. One of the frequently used logical operators is the XOR operator. It returns exactly the opposite of the result of the OR operator. Within this article, we will be using the XOR operator on two string-type variable values while working in a Python environment. Let’s have some examples in the Ubuntu 20.04 system.

  • Python String to a Dict

    In Python, the conversion of different data types is a common problem and it is very important to do it right. Dictionary is the data type that saves the information/elements in a pair form. It is important to convert the string data type to a dictionary data type during programming. However, before going to the methods of conversion, let me explain the strings and dictionaries.

    A string is a series of elements in Python. It is unchangeable. The elements or items are enclosed in single and double quotation marks. Since Python has no proper character data type. However, any character is also taken as a string in Python.

    In Python, a dictionary is essentially a collection of changeable data items. This collection is present in an unordered form. Dictionaries save the data in which every element is in the form of a pair. The elements inside the brackets are present in the form of pairs and each pair is segregated by the comma. But the elements are isolated by using a colon.

    The main attribute of the dictionary is that it does not accept polymorphism. We can get the data from the dictionary later by referencing the appropriate key name. Let’s discuss the techniques of converting the string to a dictionary.

  • Python String Decode Method

    The Python language is used to store the string in the form of Unicode. Within Unicode, a simple code point is utilized to represent a single character of a Unicode. We have to know two terms: encode and decode. The encoding would convert a simple string to a group of bytes while decoding will convert the group of bytes to a real string once again.

    So, within this article today, we will be decoding a string to an original one with the encode() and decode() function. Be sure to configure the python3 package on your Linux system. Let’s start today’s article by launching the terminal console using the Ctrl+Alt+T.

  • Python Removes Newline From a String

    In Python, the strings are a series of elements. These elements are surrounded by single and double quotation marks. Python has a newline symbol. It is represented by “/n”. It is utilized to track the climax of a line and the appearance of a new line. The newline character is utilized in f-strings. In addition, the print statement prints a newline character to the end.

    Newline character “/n” is a special character. It is helpful to make a new line. When we utilize the newline character (/n), a new line is created spontaneously.

  • Laravel 8.73 Released | Laravel News

    The Laravel team released 8.73 with support for Countable objects in the string pluralizer, allowing closures for determining cache TTL, a lazyByIdDesc() query builder method, and the latest changes in the v8.x branch.

  • Medical Web Development: Top 10 Programming Languages Used in Health Tech
  • What are Container Classes C++?

    A container class as the name suggests is used to contain different values, objects, and variables, etc. in the memory or the external storage. A container class supports other classes present in the programs and it functions to hide the objects/variables used in the memory. It stores many items and all of these items are easily accessible by other members of the program.

    All container classes access the elements of the container efficiently through the iterators. This class is known to hold some similar and mixed objects in the memory. A container can be of a homogeneous or heterogeneous type. If the container holds mixed objects then it is heterogeneous, while in the case of similar items it is known as homogeneous container class.

    We are going to explain this concept on the Linux operating system, so you need to have Ubuntu installed and in the running form on your system. So you must install Virtual Box and after downloading and installation now configure it. Now add the Ubuntu file to it. You can access Ubuntu’s official website, and download the file according to your system requirement and operating system. It will take hours, then after installation, configure it on the virtual machine. In the configuration process, make sure you have created the user because it is essential for any operation on the Ubuntu terminal. Moreover, Ubuntu needs the authentication of the user before doing any installation.

    We have used the 20.04 version of Ubuntu; you may use the latest one. For the implementation, you need to have a text editor and must have access to the Linux terminal, because we will be able to see the output of the source codes on the terminal through the query. The user must have basic knowledge of C++ and object-oriented programming to make use of classes in the program.

  • How to Convert Java to Kotlin and Kotlin to Java

    This article will cover a guide on converting code written in the Kotlin programming language to Java programming language and vice versa. Kotlin is a relatively new programming language being developed by JetBrains and it is fully interoperable with Java programming language. It offers some benefits over Java programming language like a more concise syntax, more built-in helper functions, stricter null type checking, data classes, and so on. Full list of differences between these two languages is available here. Kotlin is now the preferred language for developing Android apps and it has been fully integrated into Android Studio app development software suite.

    You can convert Kotlin to Java and Java to Kotlin using offline tools. Some of them are explained in this article. Do note that depending on the code being converted and the type of tool being used for the conversion purpose, the converted code may not be 100% accurate and you may have to make some manual edits. You should always review converted code before using it in an application.

Programming Leftovers

Filed under
Development
  • p6steve: raku at Monterey Docks (part II)
  • Convert a String to JSON Python

    In Python, strings are a series of elements or items. The strings are unchangeable objects. We cannot change the string after their declaration. “JavaScript Object Notation” is the full form of JSON. In Python, the ‘JSON files contain information that is readable for humans. The elements appear in the form of pairs.

    In web APIs, the information we send and receive is usually in the form of a dictionary string. To utilize this information, we extract consequential data. For this, we have to convert this information to dictionary format for more operations. JSON provides several techniques for serializing and deserializing “JSON”. The process of changing the string to “JSON” is called serializing. And the process of converting the JSON to a string is known as deserializing. Serialization is the opposite of deserialization. Several methods are used to convert strings to JSON.

  • How Do You Repeat a String n Times in Python?

    In Python, we utilize the asterisk operator to repeat a string. This operator is indicated by a “*” sign. This operator iterates the string n (number) of times. The “n” is an integer value. After repetition, a new string is created. The operation requires two arguments: a string and an integer value. We multiplied the string by a specific number for the repetition of string n times. Repeating the string merges the copy into an identical string. The asterisk operator repeats the string up to a definite length.

  • How Do I Check If a String Is Empty in Python?

    The strings are unchangeable. We cannot modify the string after defining it. Different operations are performed on strings. If we have a string that contains only whitespaces in it, that string is not considered empty. It contains the size of the non-zero value. So, if len() method and “not” operator is applied on this type of string, it considers whitespace as an element of the string. Sometimes in Python, we want to check whether the specified string is blank or not. To check the emptiness of the given string, use the “not” operator to utilize the variable of string instead of a condition, or utilize the equal operator to match an empty string. Now, we are going to explain numerous methods...

  • Static Method C++

    A method in C++ is also known as a function, and using methods in C++ promotes the concept of modular programming and code reusability. It means the methods that are once written can be called repetitively for as many times as needed without having the necessity of writing them every time.

  • C++ Unsigned Integers

    The integer data type in C++ is further divided into many sub-types. One such sub-type is the unsigned integers. The unsigned integers are capable of storing only the positive whole numbers. The unsigned integers in C++ are preferred while manipulating bits in operating systems since you have limited storage space. Moreover, they can also be used for array indexing since the index of an array can never be negative. This article is devoted to the discussion of the unsigned integers in C++ in Ubuntu 20.04.

  • C++ Getline function

    Getline() is used to get the input string from the user in one or more lines until a special character comes (delimiter). It is a predefined function and uses a library in the program, as its definition is present inside the library’s header file.

  • C++ Pointer Arithmetic

    Within mathematics, we have always used the term raise to the power for calculating a number having some power exponent on it. This can be said as (base number) raise to the power (exponent). How an exponent can be used for raising a number to a certain power in C++ is discussed in this article.

  • Exponents in C++ to Raise a Number in Power

    Within mathematics, we have always used the term raise to the power for calculating a number having some power exponent on it. This can be said as (base number) raise to the power (exponent). So, within today’s article, we will see how an exponent can be used for raising a number to a certain power in C++. Make sure to have a G++ compiler already installed and configured on your Linux operating system. Let’s start implementing today’s article by opening the shell terminal using the shortcut “Ctrl+Alt+T”. As the terminal is opened now, we can start implementing our examples.

  • Bit masking in C++

    Bit masking is a process that is used to access a specific bit in the bytes of data. This phenomenon is used when you are performing the process of iteration. A bitmask is said to be a mask of a sequence of N –bits that are used to encode a part of our collection.

    These elements of the mask can be set or cannot be. There are bitwise operators to create or toggle the bits. These operators are used to turn on the off bit or vice-versa.
    To use the C++ programs in executing them on Linux, you need to have the Ubuntu file configured and in running state. Moreover, the user must have some knowledge of the C++ language. C++ source codes are written in the text editor. Whereas for the execution process, use the Ubuntu terminal.

    A bitmask is also said to be a simple mask that is a sequence of n bits. It encodes the subset of the collection. The element ‘I’ is present in the subset of the ‘ith’ bit is set in the mask. For the set of elements having nth bytes, there are chances of having a 2N mask corresponding to a subset.

  • Deep Copy C++

    The copy means the same to the same replica of an original object. Within programming, there are different methods to create copies of objects. The copy of objects, variables can be done with a copy constructor or using the default assignment operator “=”. Two types of copies can be made within the C++ code, i.e., shallow and deep copy. You can use one to copy any variable or object in the code. When our object has variables that are dynamically allocated throughout the program, we need to create a Deep copy of such type of object. This article will see how a Deep copy can be created in C++.

  • An Introduction to MATLAB: Structure and Application

    Programming is the core of a modern computer. You can not even think of an alive computer without programming. There are several languages to do computer programming, and each of them has its special field. Some are known for scientific computation, and some are specialized for making the building blocks of an operating system. MATLAB is also a very popular programming language. Today we are going to get an absolute introduction to MATLAB and its wide application in today’s world.

    Although there is a wide variety of programming languages available there in the virtual world, we have chosen MATLAB for several important reasons. It is a compact language for heavy-duty works. We are going to discover each and every detail of MATLAB in this journey. Stay with us to learn. The more you know, the more you grow.

Godot Engine - Multiplayer in Godot 4.0: Scene Replication (part 1)

Filed under
Development
Gaming

It's finally time for the long-awaited post about the new multiplayer replication system that is being developed for Godot 4.0. Below, we will introduce the concepts around which it was designed, the currently implemented prototype, and planned changes to make it more powerful and user-friendly.

Design goals

Making multiplayer games has historically been a complex task, requiring ad-hoc optimizations and game-specific solutions. Still, two main concepts are almost ubiquitous in multiplayer games: some form of messaging, and some form of state replication (synchronization and reconciliation).

While Godot does provide a system for messaging (i.e. RPC), it does not provide a common system for replication.

In this sense, we had quite a few #networking meetings in August 2021 to design a replication API that could be used for the common cases, while being extensible via plugins or custom code.

Read more

Programming Leftovers

Filed under
Development

  • LLVM Prepares New ThreadSanitizer Runtime That Is Faster, Lower Memory Use - Phoronix

    LLVM developers have been working recently to land their new ThreadSanitizer run-time. The TSan as a reminder is the compiler instrumentation with associated run-time library for being able to detect data races.

    ThreadSanitizer is successful at detecting data race conditions even within large and complex code-bases. But unfortunately it's quite burdensome to enable with performance slowing down in the range of 5~15x while the run-time memory overhead can be in the range of 5~10x.

  • xcrun: error: invalid active developer path - buildVirtual
  • Why PHP Is Getting a Foundation and Why That Matters - FOSS Force

    The PHP Foundation is an effort by 10 key PHP vendors to assure adequate funding to keep the popular scripting language viable.

  • Qt 5.12.12 Released

    We have released Qt 5.12.12 today. This is the last release from Qt 5.12 LTS series and the standard support of Qt 5.12 LTS ends in December 2021.

    Qt 5.12.12 contains ~ 30 bug fixes compared to the Qt 5.12.11. Please check details about the release from Qt 5.12.12 Release Note.

    Note that Qt 5.12 LTS standard support ends in December 2021. It has been quite a long journey with it; big thanks to everyone involved!

  • LWJGL - The Lightweight Java Game Library Version 3.3 Released

    The part to note in this definition is that LWJGL provides access to native APIs through Java. That it is a wrapper over the APIs doesn't mean that you should not be familiar with the semantics of the underlying API. Hence to get the most out of LWJGL a good understanding of the native APIs is essential too.

    At this point it is important to disambiguate between a library and a framework. LWJGL is a library and as such is low level; it is not a gamedev framework like libgdx (which itself uses LWJGL under the covers!) or a gamedev engine like GoDot which provide higher level of abstractions. For this reason, it is not recommended for novice programmers to start out writing games with it.

    And, of course, it is debatable whether Java is a good language for gamedev over the classic value of C++. Some advantages of using Java are its support of multiple operating systems and, of course, the easy learning curve in comparison to C++. Minuses could be garbage collection, performance and a smaller dev community. In any case, it depends on the use case; as they say, choose the best tool for the job at hand.

  • Bitrot resistance of next-generation image formats

    What happens when a single bit gets corrupted in an image file you cherish? The results can range from absolutely nothing to an imperceptible visual change to a complete loss of the image. The hero image below is somewhere in the middle of the scale; where the top half of the image is perfect, and the lower half is reduced to meaningless digital noise.

    Whether due to mechanical failure or transmission interference like cosmic radiation: bitrot happens. A rotted bit, or flipped bit, is when one bit of RAM or persistent storage unintentionally flips its state between zero and one. You can only do so much to protect your system from random failure. Multiple backups and data verification is the only proven strategy to protect against it.

    Traditional JPEG images (referred to as JPEG troughing the article as opposed to JXL), especially with progressive encoding, handle bitrot remarkably well. You might see a single pixel shift its color almost imperceptibly, or one of the encoding layers may shift slightly. The effects are so well understood that you can even find free software that can automatically recover corrupted JPEG photos.

    However, the next-generation image formats pack data much more densely than in the legacy image formats. There’s isn’t just less redundancy, but every single bit means more to the complete image. This means the effects of bitrot produce a much greater loss of visual fidelity and decodes to more abstract results. The newer encoding techniques include predictive models that can get thrown off completely by a single bit out of place. The digital hellfire in the lower half of the above hero image is a perfect example of this.

  • OpenFaaS: How to Add Python Requirements and Dependencies - Anto ./ Online

    This guide will show you how to add requirements and dependencies for a Python project using OpenFaaS.

    Python dependencies are software components that your project needs for it to work. You can manually use PyPI (the Python Package Index) to provide packages that you need, but OpenFaaS can automate this for you.

  • Perl Weekly Challenge 140: Add Binary
  • My Favorite Warnings: experimental | Tom Wyant [blogs.perl.org]

    Perl has had experimental features ever since I started using it at about version 5.6. These were things that were considered useful, but about which there was doubt -- about their final form, whether a satisfactory implementation existed, or whatever.

    Until Perl 5.18, experimental features were simply documented as experimental. At that point, an experimental warning category was added, with sub-categories experimental::lexical_subs, experimental::lexical_topic, experimental::regex_sets, and experimental::smartmatch.

    Most of the features covered by the original Perl 5.18 warning categories were actually introduced in Perl 5.10 as back-ports from Raku (or Perl 6, as it was then called), and not documented as experimental. My impression was that the relevant experimental:: warnings were introduced becaue the corresponding features were recognized as being more experimental than originally believed. Programmers already familiar with a feature might not notice an extra sentence in the documentation, but they will surely notice if their code starts spitting out experimental warnings.

PHP 8.1 Released

Filed under
Development
  • 25 Nov 2021: PHP 8.1.0 Released

    The PHP development team announces the immediate availability of PHP 8.1.0. This release marks the latest minor release of the PHP language.

  • PHP 8.1 Released With Fibers, Enumerations, Read-Only Properties & Much More - Phoronix

    PHP 8.1.0 was just officially released as the latest annual feature update to this widely-used, server-side programming language.

    PHP 8.1 finally introduces the notion of "enums" or enumerations for a custom type that is a discrete number of possible values. PHP enums can be used anywhere an object can be used.

  • Remi Collet: PHP version 8.1.0 is released!

    RC5 was GOLD, so version 8.1.0 GA is just released, at planed date.

    A great thanks to all developers who have contributed to this new major and long awaiting version of PHP and thanks to all testers of the RC versions who have allowed us to deliver a good quality version.

    RPM are available in the remi-php81 repository for Fedora ≥ 33 and Enterprise Linux ≥ 7 (RHEL, CentOS, Alma, Rocky...) and as Software Collection in the remi-safe repository.

Programming Leftovers

Filed under
Development
  • NVIDIA's Open-Source Image Scaling SDK 1.0 Released - Phoronix

    Last week NVIDIA announced the Image Scaling SDK as an open-source, cross-platform GPU image upscaling implementation that with their own hardware makes use of DLSS. Following the brief exposure over the past week, NVIDIA Image Scaling SDK 1.0 has been formally christened.

    The NVIDIA Image Scaling SDK can work on the likes of Intel and AMD Radeon hardware via the SDK's generic compute shaders that are MIT licensed. Integrating the NVIDIA Image Scaling SDK does require integration on part of the game/engine developer.

  • Tips for formatting when printing to console from C++ | Opensource.com

    When I started writing, I did it primarily for the purpose of documenting for myself. When it comes to programming, I'm incredibly forgetful, so I began to write down useful code snippets, special characteristics, and common mistakes in the programming languages I use. This article perfectly fits the original idea as it covers common use cases of formatting when printing to console from C++.

  • In response to the moderation team resignation [Ed: Rust project doing massive damage control campaign now, just as those who resigned had predicted. Rust lacks legitimacy. GAFAM prisoner. Microsoft controlled.]

    As top-level team leads, project directors to the Foundation, and core team members, we are actively collaborating to establish next steps after the statement from the Rust moderation team.

  • This Week In Rust: This Week in Rust 418

Programming Leftovers

Filed under
Development
  • Using AWK with CSV Files

    Unfortunately, things get more complex from there.

    CSV files can contain commas, line-breaks, and delimited quotes within the quoted values, which is great for storing data in a CSV file, but is something that AWK is just not well suited to handle: [...]

  • Dirk Eddelbuettel: nanotime 0.3.4 on CRAN: Maintenance Update

    Another (minor) nanotime release, now at version 0.3.4, arrived at CRAN overnight. It exports some nanoperiod functionality via a C++ header, and Leonardo and I will use this in an upcoming package that we hope to talk about a little more in a few days. It also adds a few as.character.*() methods that had not been included before.

    nanotime relies on the RcppCCTZ package for (efficient) high(er) resolution time parsing and formatting up to nanosecond resolution, and the bit64 package for the actual integer64 arithmetic. Initially implemented using the S3 system, it has benefitted greatly from a rigorous refactoring by Leonardo who not only rejigged nanotime internals in S4 but also added new S4 types for periods, intervals and durations.

  • Dirk Eddelbuettel: RcppArmadillo 0.10.7.3.0 on CRAN: Bugfix, New Features

    Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 928 other packages on CRAN.

    I somehow missed to blog and tweet about the recent release based on the Armadillo 10.7.3 upstream release. Conrad is in “long-term support mode”, and 10.7.* is meant to provide fixes and stability relative to the most recent release which we did on September 30. We did actually find a regression when checking reverse-dependencies requiring an upstream move to 10.7.3. At the same time, we folded pull request #352 in. It addresses an old bug of ours where Armadillo fields types were not converted correctly in all dimensions.

  • PHP Established New Non-Commercial Organization PHP Foundation

    The reasons behind the establishment of the PHP Foundation is that one of the key contributors, Nikita Popov, has decided to switch his focus away from PHP to LLVM.

    You might think that large open source projects are well-funded, but this is not true. In fact many of them rely on a small group of maintainers, as is exactly the case with PHP.

    Despite being used by 78% of the web, PHP only has a few full-time contributors.

    Nikita Popov, a well-known long-time PHP ecosystem contributor, is the author of generators, variadic functions and argument unpacking, engine exceptions, uniform variable syntax, and many other PHP contributions. He is also known for PHP Parser which laid the groundwork for many other tools.

    Popov started working on PHP in 2011 and worked on PHP at JetBrains with the PhpStorm team, making significant contributions to three major releases there – PHP 7.4, PHP 8.0, and PHP 8.1.

Linux Development Leftovers

Filed under
Development
Linux
  • Intel Posts New Iteration Of Key Locker Support For Linux - Phoronix

    With Intel Tiger Lake mobile processors introduced last year there has been good open-source support going back to launch, but a few of the more niche features have seen slower than normal handling for getting the features supported by the upstream Linux kernel. The latest patch series being revived now is for Intel Key Locker support.

    Just a few days ago I talked about Intel pursuing a new Indirect Branch Tracking (IBT) patch series as part of their Control-Flow Enforcement Technology (CET) introduced on Tiger Lake. After months of silence, another Tiger Lake feature is seeing revised kernel patches emerge this week and that is for Key Locker.

  • EasyOS: Kernel 5.10.81 compiled with improved AMD CPU support

    I don't have a PC with AMD CPU, so haven't bothered much with configuring the kernel to work with them. However, some guys testing EasyOS are keen on them, so today have given it a closer look.

  • Digest of YaST Development Sprints 135 & 136

    As already explained in this same blog quite some time ago the YaST Partitioner can be used to set up several kinds of encryption, but “Regular LUKS2” was not one of those. That was intentional because using LUKS2 comes with many challenges, as summarized in this Bugzilla comment. But now the time has come to start introducing experimental support for general LUKS2 encryption. Initially it will be available in openSUSE Tumbleweed and pre-releases of SLE-15-SP4 but only if the environment variable YAST_LUKS2_AVAILABLE is set. Check the description of this pull request for screenshots and more information.

    Support for LUKS2 in AutoYaST will have to wait a bit, until we have received some feedback from interactive installations and ironed out all the details. But AutoYaST users can meanwhile test and enjoy another new feature available also in Tumbleweed and 15.4 pre-releases - support for identifying EFI systems in dynamic profiles, which includes both rules and ERB templates. Learn more and see some examples in the description of the corresponding pull request.

    The last feature for Tumbleweed and the upcoming 15.4 that we want to highlight in this report is the brand new support for NTLM authentication in linuxrc.

Programming Leftovers

Filed under
Development
  • Dependency Derby | Coder Radio 441

    Are Linux devs getting upset with the Python community? We weigh in on a nuanced issue. Plus the mass-mod resignation over at Rust, and Mike's thoughts on setting up a dev environment on Windows 11.

  • Adobe XD Bridge TP for Qt Design Studio released!

    Adobe XD Bridge TP for Qt Design Studio released!

    Qt Design Studio is a UI design and development tool that enables designers and developers to rapidly prototype and develop complex UIs.

  • Python virtualenv and venv dos and don’ts
  • Oscilloscope Probes Itself To Add Video | Hackaday

    Modern oscilloscopes are often loaded with features, but every now and then you run into a feature that seems easy to implement yet isn’t available. [kgsws] wanted to use his Rigol DS1074 to show live measurements in his YouTube videos, but found out that this scope doesn’t support video output. Not to be deterred, [kgsws] decided to add this feature himself. In the video embedded below, he describes in detail the process of adding a USB Video Capture (UVC) interface to his oscilloscope.

    The basic idea was to find the signals going into the scope’s display and read them out using a Cypress EZ-USB board. This is a development board that can be used to design USB devices, and supports the UVC mode. However, with no documentation of any of the Rigol’s internal circuitry [kgsws] had to probe the display connector to find out which pin carried which signal. And since he had no other scope available than this Rigol, he hooked up the various bits of the disassembled instrument so that it could (awkwardly) probe its own internal signals.

  • 7 Segment Display And Raspberry PI Pico: Wiring and Setup with MicroPython

    7 segment display can be controlled with a few Micropython lines from Raspberry PI Pico. It is one of simplest projects and a funny way to start coding and cabling

    In this tutorial, I’m going t show you how to connect and configure a 7 segment display with a Raspberry PI Pico. If you are interested in how to get it working with Raspberry PI computer boards (like RPI Zero, RPI 4 model B, RPI 3 model A/B, and so on), please refer to my Control a 7 Segment Display from Raspberry PI with Python.

Security Fixes in Ruby

Filed under
Development
Security
Syndicate content

More in Tux Machines

Type Title Author Replies Last Postsort icon
Story 9to5Linux Weekly Roundup: November 28th, 2021 Marius Nestor 29/11/2021 - 1:25am
Blog entry Why We Can't Teach Cybersecurity Roy Schestowitz 29/11/2021 - 12:52am
Story toiday's leftovers Roy Schestowitz 29/11/2021 - 12:12am
Story Kernel and Graphics: Linux Stuff and GPUs Roy Schestowitz 29/11/2021 - 12:11am
Story Linux 5.16-rc3 Roy Schestowitz 28/11/2021 - 11:17pm
Story PHP 8.1 Released Roy Schestowitz 3 28/11/2021 - 11:15pm
Story Audiocasts/Shows: Endless OS 4.0.0, GIMP, BSD, KDE, and Elementary Roy Schestowitz 28/11/2021 - 11:06pm
Story today's howtos Roy Schestowitz 28/11/2021 - 10:36pm
Story Upcycling Android: Keep using your phone with Free Software Rianne Schestowitz 1 28/11/2021 - 10:08pm
Story EU coalition urges EU to push back against gate keeping by Microsoft, files official complaint Roy Schestowitz 4 28/11/2021 - 10:07pm