Language Selection

English French German Italian Portuguese Spanish

Development

Responsively App Is A Browser For Fast Responsive Web Development (Free And Open Source)

Filed under
Development

The application had its first public release back in March 2020, and is already quite popular, but I've only recently stumbled upon it and thought I'd share it with you.

Main Responsively App features...

The application also includes a live CSS editor, touch mode, design mode that allows users to edit HTML directly without dev tools, network speed emulation options, zoom, disable SSL validation, and support for various protocols (file://, ftp://, etc.), and much, much more.

Using Responsively App, you also get network proxy support, light and dark themes and shortcut keys.

Read more

Programming Leftovers

Filed under
Development

  • Automating Mobile Games With A Robot Arm | Hackaday

    My Singing Monsters is one of those mobile titles that has users play simple games to earn coins and gems in the usual way. [Anykey] found that his son was a fan of the game, but that sometimes it felt a little rigged. Thus, rather than waste time playing themselves, he set up a robot to do the job for them.

  • Dima Kogan: GL_image_display

    I just spent an unspeakable number of days typing to produce something that sounds very un-impressive: an FLTK widget that can display an image. The docs and code live here. The big difference from the usual image-drawing widget is that this one uses OpenGL internally, so after the initial image load, the common operations (drawing, redrawing, panning and zooming) are very fast. I have high-resolution images in my projects, and this will make my tools much nicer.

  • Anyone can compile open source code in these three simple steps | Opensource.com

    There are many ways to install software, but you get an option not available elsewhere with open source:

  • Rakudo Weekly News: 2021.48 Raku at FOSDEM 2022

    Good news from the FOSDEM organizers: there will be an online Raku DevRoom at FOSDEM 2022. Please stay tuned for more information on how to make sure you can get a presentation in. And of course, this should not prevent you from submitting a presentation to any of the other tracks to spread the word of the Raku Programming Language. Such as the Declarative and Minimalistic Computing track to name but one example.

  • gfldex: Symmetric code

    While reading Arne`s solution for Challenge #140.2, I spotted a nested simple loop.

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.

Syndicate content

More in Tux Machines

Videos/Shows: Deepin, Free Software, GTK, KDE, and More

Ubuntu: Internet of Things (IoT), CyberDog, ZeroDown, and OVS (Open vSwitch)

  • Ubuntu Blog: Embedded systems: the advent of the Internet of Things – Part II

    This is the second part of the two-part blog series covering embedded Linux systems and the challenges brought about by the proliferation of Internet of Things (IoT) devices. In Part I, we surveyed the embedded ecosystem and the role Linux plays within that space. This blog takes you on the next step in the journey, where we explore the most demanding challenges facing manufacturers of tightly embedded IoT devices.

  • CyberDog: a four legged robot revolution with Ubuntu

    Late this year, Chinese tech giant Xiaomi unveiled CyberDog: a quadrupedal, experimental, open-source robot that the firm claims will improve the robot development environment and promote the development of the robot industry. Today, Canonical dives into the specifications of this four legged robot and discover how Ubuntu is helping the device become an open source technological platform. Xiaomi has a clear vision for its product. As Huang Changjiang, PM at Xiaomi, explains, “CyberDog is developers’ technological partner from the future. It equips inhouse-made high-performance servo motors, high computing ability, with built-in AI for visual detection system and voice interaction system, supporting a variety of bionic motion gestures.”

  • ZeroDown® Software Targets Open Source with New Canonical Partnership

    As businesses around the world and in every major industry define and accelerate their cloud strategies, the lack of open, flexible and complete high availability has become a major concern. The ZeroDown platform, built upon Canonical’s industry-leading operating system, Ubuntu, aims at integrating into Canonical’s broader Charmed OpenStack platform with its ZeroDown Ultra High-Availability TM Software, eliminating downtime and data loss for its customers, running seamlessly through planned or unplanned downtime events.

  • Data centre networking: what is OVS? | Ubuntu

    In one of our preceding blogs, we spoke about Software-Defined Networking (SDN) and the key drivers behind it. Virtualisation is one of the fundamental aspects that characterises SDN, and has influenced the architecture of network switching in the data centre. OVS (Open vSwitch) is a fundamental component of modern and open data centre SDNs, where it aggregates all the virtual machines at the server hypervisor layer. It represents the ingress point for all the traffic exiting VMs, and can be used to forward traffic between multiple virtual network functions in the form of service chains. Let’s take a closer look in order to understand what OVS is.

Compact edge AI boxes offer choice of Jetson Nano, TX2 NX, and Xavier NX

All three systems ship with the Ubuntu 18.04 with Nvidia JetPack 4.5.1. They also support Advantech’s Edge AI Suite and FaceView applications, which are available on its earlier AIR systems. Read more

today's howtos

  1. Collaborate on a file using Linux diff and patch

    I edit a lot of text files. Sometimes it's code. Other times it's the written word for role-playing games (RPGs), programming books, or general correspondence. Sometimes it's nice to make a change, but for my collaborator to compare my change with what they originally had written. Many people default to office suites, like LibreOffice, using comments or change tracking features. Sometimes a simpler tool makes more sense, though, and for that, you can look at programming history for tools like diff and patch, which provide standardized formatting for tracking and applying changes to shared files.

  2. Best ways to destroy Microsoft Windows - blackMORE Ops

    OK, like seriously don’t do it unless you’re doing it in a practice Virtual machine or have permission to do so.. I take no responsibility for these collection of best ways to destroy Microsoft Windows!

  3. Quickemu- Run Windows 11 on Ubuntu 20.04 LTS Linux in few clicks

    o you want to install Windows 10 or 11 on your Ubuntu 20.04 or 22.04 LTS Linux using QEMU-KVM virtual machine? Then here is a tutorial to do that using the command terminal and Quickemu + Quickgui. Although we all have a simple solution that is a virtual box to run Windows 11 virtual machine, what about KVM? Some will say it is not easy to operate because of the command line but no there are few open-source GUI programs to give KVM an easy interface. However, another thing is downloading ISO images of various operating systems including Windows 10 or 11 to use with Virtualbox can be a headache. Hence, to solve all of this, there is a project called QuickEMU with a GUI interface known as QuickGUI. QickEMU uses QEMU_KVM on Linux operating system to run a virtual machine and can easily download all popular operating system Images to install including macOS. Whereas it can be operated via CLI but for ease of usage users can install QuickGUI to download, create, and manage operating systems virtual machines.

  4. Steinar H. Gunderson: Commitcoin

    How do you get a git commit with an interesting commit ID (or “SHA”)? Of course, interesting is in the eye of the beholder, but let's define it as having many repeated hex nibbles, e.g. “000” in the commit would be somewhat interesting and “8888888888888888888888888” would be very interesting. This is pretty similar to the dreaded cryptocoin mining; we have no simple way of forcing a given SHA-1 hash unless someone manages a complete second-preimage break, so we must brute-force. (And hopefully without boiling the planet in the process; we'd have to settle for a bit shorter runs than in the example above.) Git commit IDs are SHA-1 checksums of what they contain; the tree object (“what does the commit contain”), the parents, the commit message and some dates. Of those, let's use the author date as the nonce (I chose to keep the committer date truthful, so as to not be accused of forging history too much). We can set up a shell script to commit with --amend, sweeping GIT_AUTHOR_DATE over the course of a day or so and having EDITOR=true in order not to have to close the editor all the time.

  5. How to Install Kuma on Ubuntu 20.04 | LinuxHostSupport

    Kuma is an open source monitoring tool like “Uptime Robot” written in Nodejs. In this article, we’ll learn how to install it on Ubuntu 20.04 so we can self-host our Uptime Bot. We’ll also set up a reverse proxy on Apache with a Let’s Encrypt SSL to secure our website. Kuma is easy to use and upgrade, and is powerful for traffic control, observability, service discovery, etc.

  6. How to Install SuiteCRM with Apache and free Let's Encrypt SSL on Debian 11

    SuiteCTM is an open-source Customer Relationship Management solution written in PHP. It is a fully-featured and highly-extensible CRM application that runs on any operating system. It became popular when SugarCRM decided to stop the development of its community edition. It is used for creating business strategies, actions, and decisions. It is an alternate CRM solution for other commercial CRM such as SugarCRM, Salesforce, and Microsoft. In this post, we will show you how to install SuiteCRM with Apache and Let's Encrypt SSL on Debian 11.

  7. How to Install Rudder System Configuration and Auditing Tool on Ubuntu 20.04 – VITUX

    Rudder is an open-source and user-friendly web-based system configuration and audit tool. It helps you to manage your IT infrastructure by automating system configurations while ensuring visibility and control of your infrastructure. Two main components of Rudder are: Root server and node. Root server defines the configurations for the systems it manages. The systems managed by Rudder are known as nodes. Rudder manages the nodes using the Rudder agent which is installed on these systems. In today’s post, we will install the Rudder root server and agent on Ubuntu 20.04 LTS. We will use two Ubuntu machines: one as the Rudder root server and the other one as the Rudder node. Note: You must be a root user or have sudo privileges on both machines in order to install the Rudder server and agent.

  8. How to check if packages in RHEL-based Linux distributions have been patched for specific CVEs - TechRepublic

    CVEs (Common Vulnerabilities and Exposures) are constantly being discovered and patched. When discovered, it means a new security flaw exists in either an operating system or a piece of software and should be patched as soon as possible. Fixing the vulnerabilities, of course, is up to the developers. Patching those vulnerabilities, however, is up to the admin (or user). Thing is, you might not know if you're using a piece of software that includes one or more CVEs. How do you uncover this information? Do you have to spend hours researching? Not really. In fact, all you need to know is the CVE you're looking for and the piece of software it affects. With those two bits of information in hand, you can quickly discover if what's installed on your Red Hat Enterprise Linux-based distribution contains that vulnerability. I'm going to show you how to do just that.

  9. How to Install and Configure Nginx on Ubuntu

    Web applications have gained wide popularity over the past few years as a means of providing services to different clients. With a web application, you can reach out to a wider audience regardless of the device or operating system they are using. Being able to install and configure a web server is a valuable skill to have both as a web developer and software engineer. A web server is a program responsible for delivering your web content to clients over the internet or a network. Let's take a look at how to install and configure the Nginx web server on Ubuntu.

  10. How to install Sublime Merge on a Chromebook

    Today we are looking at how to install Sublime Merge on a Chromebook. Please follow the video/audio guide as a tutorial where we explain the process step by step and use the commands below.

  11. How to Install OpenEMR on Ubuntu 20.04 With LAMP Stack

    OpenEMR is a popular open-source software for the healthcare industry. It offers electronic health records and medical practice management solutions. OpenEMR provides a fully integrated Workflow Management inside healthcare facilities. Any healthcare facility would be able to capture and control patient data using the following features in OpenEMR.

  12. Add current user to all groups on the system except “nobody/nogroup”