Language Selection

English French German Italian Portuguese Spanish

Development

GNU Poke Reaches 1.0

Filed under
Development
GNU
  • Release notes for poke 1.0
    I am happy to announce the first release of GNU poke, version 1.0.
    
    The tarball poke-1.0.tar.gz is now available at
    https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz.
    
      GNU poke (http://www.jemarch.net/poke) is an interactive,
      extensible editor for binary data.  Not limited to editing basic
      entities such as bits and bytes, it provides a full-fledged
      procedural, interactive programming language designed to describe
      data structures and to operate on them.
    
    This release is the product of 3 years of work resulting in 4126
    commits, made by 19 contributors.
    
    The program is far from being perfect and there are known bugs and
    limitations in place.  We also have lots of awesome ideas still to be
    implemented, extensions we want to add, pickles for many data formats
    to write, documentation to improve, and lots of work in
    progress... the GUI, the machine-interface... working in poke is so
    fun that it is difficult to stop :'D
    
    But it is time to start the releasing cycles so everyone can benefit
    from poke, which is already immensely useful for many activities like
    systems programming, testing of software, design and documentation of
    file formats and protocols, reverse engineering, and much more.
    Releasing often will hopefully also bring in more developers to our
    little but enthusiastic community... there is so much to do!
    
    In any case, we wish you have fun with poke and that you find it
    useful.
    
    Please send us comments, suggestions, bug reports, *patches*,
    questions, complaints, bitcoins, or whatever, to poke-devel@gnu.org.
    
    Many of the poke developers and users populate the #poke IRC channel
    at irc.freenode.net, and you are more than welcome to join us there
    and say hello.
    
    Now it is time to mention the names of all the people who have
    contributed with code and/or documentation to this release.  In
    certain but no significant order they are:
    
       John Darrington
       Tim Rühsen
       Luca Saiu
       Bruno Haible
       Mohammad-Reza Nabipoor
       Eric Blake
       Egeyar Bagcioglu
       Kostas Chasialis
       Darshit Shah
       Dan Čermák
       David Faust
       Carlo Caione
       Henner Zeller
       Aurelien Aptel
       Indu Bhagat
       Darkstar
       Michael Drüing
       Pierre-Evariste Dagand
    
    My gratitude to you all!  It is a real pleasure to hack with you.
    
    Finally, as a personal note, I would like to dedicate this release to
    my father Eduardo.  For this is also your work in a sense, and I love
    you very much.
    
    And this is all for now.
    Happy poking!
    
  • GNU poke 1.0 released

    Version 1.0 of GNU poke is out. "GNU poke (http://www.jemarch.net/poke) is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them."

  • GNU poke 1.0 released
  • GNU Poke 1.0 Released For Poking At Binary Data

    The newest GNU project seeing its first release is GNU Poke, which is being inaugurated at v1.0 after being in development for the past three years.

    GNU Poke 1.0 is an interactive editor for binary data that beyond basic editing capabilities has an integrated, interactive programming language for describing data structures and operating on them. There is a GUI in the works for Poke along with many other features planned but after the initial three years of development they feel it's now in good enough shape for declaring a 1.0 release.

Programming Leftovers

Filed under
Development
  • 6 Top Data Analysis Tools for Big Data

    Big Data is an all-inclusive term that refers to data sets so large and complex that they need to be processed by specially designed hardware and software tools. The data sets are typically of the order of tera or exabytes in size. These data sets are created from a diverse range of sources: sensors that gather climate information, publicly available information such as magazines, newspapers, articles. Other examples where big data is generated include purchase transaction records, web logs, medical records, military surveillance, video and image archives, and large-scale e-commerce.

    There is a heightened interest in Big Data and Big Data analysis and the implications they have for businesses. Big Data analysis is the process of examining huge quantities of data to find patterns, correlations, and other useful information that can help firms become more responsive to change, and to make better informed decisions.

    Big Data analysis can be performed with data mining software. However, the unstructured data sources used for big data analysis are not necessarily suitable for investigation by traditional data mining software.

  • 50 Years of Pascal

    Pascal was easy to teach, and it covered a wide spectrum of applications, which was a significant advantage over Algol, Fortran, and Cobol. The Pascal System was efficient, compact, and easy to use. The language was strongly influenced by the new discipline of structured programming, advocated primarily by E.W. Dijkstra to avert the threatening software crisis (1968).

  • How to use Django Serializers – Linux Hint

    Serializer is used in Django to convert the model instances or querysets into python supported data types that can be easily rendered into JSON, XML, or other formats. The deserialization can also be done by serializers to get back the original data from the serialized data. This feature is available in Django REST Framework. So, the users have to install this framework to use the serializers. Any webpage of the website may contain HTML, CSS, and data from the database tables. But the API does not understand these types of content, and it can understand the raw data only, that is, JSON data. How the serializers can be used to convert the model instance into JSON format has shown in this tutorial.

  • How to use queryset in django – Linux Hint

    Most of the web applications are implemented with the database now. queryset is used in the Django application to retrieve records by filtering or slicing or ordering the database table without changing the original data. The model used Django to create the table in the database. So, the knowledge of using the model in Django is necessary to understand the use of queryset. The main function of the queryset is to iterate the records of database tables by converting them into SQL queries. It can be used from the python command line or by writing the python script to display the browser’s output. The uses of queryset for retrieving data from a database table in different ways have been explained in this tutorial.

  • This Week In Rust: This Week in Rust 379 [Ed: The usual paradox of developing "openly" while requiring people to get an account with Microsoft and then use proprietary software of Microsoft, which attacks Free software.]

    This Week in Rust is openly developed on GitHub.

  • What Is BC in a Bash Script? – Linux Hint

    BC, which stands for Basic Calculator, is a command in Bash that is used to provide the functionality of a scientific calculator within a Bash script. This can be useful for scripting with various arithmentic use cases and scenarios. This article shows you how to use BC in a Bash script.

Federico Mena-Quintero: Librsvg, Rust, and non-mainstream architectures

Filed under
Development
GNOME

Almost five years ago librsvg introduced Rust into its source code. Around the same time, Linux distributions started shipping the first versions of Firefox that also required Rust. I unashamedly wanted to ride that wave: distros would have to integrate a new language in their build infrastructure, or they would be left without Firefox. I was hoping that having a working Rust toolchain would make it easier for the rustified librsvg to get into distros.

Two years after that, someone from Debian complained that this made it hard or impossible to build librsvg (and all the software that depends on it, which is A Lot) on all the architectures that Debian builds on — specifically, on things like HP PA-RISC or Alpha, which even Debian marks as "discontinued" now.

Recently there was a similar kerfuffle, this time from someone from Gentoo, specifically about how Python's cryptography package now requires Rust. So, it doesn't build for platforms that Rust/LLVM don't support, like hppa, alpha, and Itanium. It also doesn't build for platforms for which there are no Rust packages from Gentoo yet (mips, s390x, riscv among them).

Read more

Programming Leftovers

Filed under
Development
  • LD_PRELOAD: How to Run Code at Load Time

    Today I want to continue the series on using LD_PRELOAD. In previous posts, we covered how to inject a shared object binary into a process, and use that to hijack a library function call to run our own code. This is great when we want to overwrite the behavior of external library calls in a process, but we would have to wait for that call to happen first before our code can run. What if we want to run code before the program even runs from within the target process? Today, we are going to explore how this can be accomplished and look at a few use cases where this could be useful.

  • Qt Creator 4.14.1 released

    This release fixes various issues in various parts of Qt Creator. Please see our change log for an overview of the improvements.

  • Using maps in GNU poke

    Editing data with GNU poke mainly involves creating mapped values and storing them in Poke variables. However, this may not be that convenient when poking several files simultaneously, and when the complexity of the data increases.

  • Bash script to While Loop while Reading Stdin – Linux Hint

    The concept “stream” in a computer applies to something that might move data. Any instruction you are executing in the terminal would be at any position of the flow. These positions can be an origin or an outflow. Let’s get a quick overview of the specific Stdin stream. In Linux, stdin refers to the default or standard input. The input it requires must be a text. To acquire data or information from you, it’s the file handler that your procedure readout. Almost all flows are viewed in Linux as if they are directories. We may read/write information from all of these streams, exactly as you can read/write a document. By using a special file descriptor number related to it provides a great approach to access a document. There have been special values allocated to every one of these throughout the situation of such streams. Stdin has a value of 1.

  • How to Obtain a Bash Substring After a Specified Character – Linux Hint

    In programming, a string is a series of characters, whether as a precise constant or some sort of variable. The characters contained within a string can be any number, digit, or special character.

  • Create Bash Functions with Arguments – Linux Hint

    In programming, a function is an entity that performs an activity when it is called. This function may or may not accept arguments, which are the parameters that determine the activity that a function performs. Many of those who are new to programming might wonder why we even need to create functions when we can simply write a program as-is without breaking it into different parts.

    This is where the concepts of Modularity and Code Reusability come into play. Modularity, or modular programming, is a highly recommended programming approach that breaks code into chunks to enhance readability, which also results in Code Reusability. Code Reusability refers to the ability to reuse a certain piece of code repeatedly, thus avoiding the task of rewriting the code every time it is used.

    Modularity and Code Reusability are why functions are so extensively used in all programming languages, regardless of whether they are high-level or low-level. However, it can be quite tricky to create functions that work with the correct arguments or that accept certain arguments. This article uses several examples to show you how to create Bash functions with arguments in Linux Mint 20.

  • Creating Bash Infinite Loop by Example Scripts – Linux Hint

    An infinite loop in Bash or any other programming language refers to a loop that is continuous i.e., its terminating condition is never met or its executing condition forever stays true. Such loops in any programming language are very simple to write. Whether it is a “for” loop or a “while” loop, it can be made infinite with very slight tweaking in its normal syntax.

    In this article, we will be sharing with you the different ways on how you can conveniently make the “for” and “while” loops infinitely in Bash in Linux Mint 20.

  • How to Break from a Bash While Loop? – Linux Hint

    Loops are an extremely useful means of performing repetitive tasks not only in Bash scripting but also in all other programming languages. It enables us to write a task (that is supposed to occur multiple times) at once and enclose it within any desired loop so that the said task can be performed repeatedly. Different loops are used in every programming language, i.e., multiple types of loops can be used with every programming language. Amongst all types, the most frequently used loops are the “for” loop and the “while” loop.

    A major difference between the execution of the “for” loop and the “while” loop is that in the former one, the incrementing or decrementing variable is specified with the loop whereas, in the latter, that variable is specified after the task that is supposed to be performed repeatedly is stated. The “while” loops appear to be more convenient for the programmers syntactically.

    The concept of infinite loops in every programming language is also very common, i.e., a loop that never terminates and its condition assesses to be always “true”. At times, these loops are written accidentally by the programmers, however, there are situations in which such loops are written deliberately. Either way, there can be certain conditions in which we want that infinite loop to break.

  • How to Create a Bash Function that Returns an Array – Linux Hint

    It may appear at first glimpse that returning an array from a Bash function is not realistic. Considering all the benefits, it can be useful to call multiple methods to construct arrays to split up the process of gathering all the appropriate parameters for a YAD call.

Programming Leftovers

Filed under
Development
  • Python While Loop: Intro and Explanation - Make Tech Easier

    Coding is (of course) about building things to help others. However, creating programs and software has more to do with automating repetitive or complex tasks than anything else. Python’s while loop lets you repeat suites of code to automate many actions at once.

    In this post, we show you how to use Python’s while loop. First, let’s talk about what the while loop does and where it’s best used.

  • Pattern dispatch | Playing Perl 6 b6xA Raku

    The ever helpful raiph wished for RakuAST in an answer to a question about pattern matching like it is done in Haskell. It was proposed to use MMD to solve this problem. Doing so and getting a fall-through default was unsolved. Since dispatch simply is pattern matching we just need to do some extra work. In a nutshell, the dispatcher gets a list of functions and a list with arguments. The first function that takes all arguments wins.

  • Clang LTO Support Merged For Linux 5.12 Including ARM64 + x86_64

    Pop open the champagne as the in-development Linux 5.12 kernel will be able to support link-time optimizations (LTO) in conjunction with the LLVM Clang compiler on not only AArch64 (64-bit ARM) but also x86_64.

    Last week I noted that Clang LTO support had been submitted but at the time was not clear if Linus Torvalds was willing to land it given his past comments around LTO'ing the kernel. With that pull request it was also just for AArch64 with the x86_64 support not yet squared away.

    Years ago Linus Torvalds was unconvinced by GCC LTO support for the kernel and that code ultimately was never mainlined. With Clang the benefits are much the same in allowing for potentially greater performance by allowing the code compiler to apply optimization passes at link-time on the entire kernel rather than being limited on a per source file basis. LTO also has the possibility of providing greater space savings too. Plus in the case of Clang, LTO for the kernel is also needed to support Control Flow Integrity (CFI) for the kernel.

  • add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc

    This is the first version of the complete patch for the new security feature for GCC:

    Initialize automatic variables with new first class option -ftrivial-auto-var-init=[uninitialized|pattern|zero]
    and a new variable attribute “uninitialized” to exclude some variables from automatical initialization to
    Control runtime overhead.

  • Proposed GCC 12 Security Option Would Auto Initialize Automatic Variables - Phoronix

    An Oracle engineer has proposed introducing a new "-ftrivial-auto-var-init=" option for the GCC compiler that would allowing initializing automatic variables with either a pattern or zeroes in the name of security.

    In trying to fight security issues stemming from uninitialized memory disclosure, the suggested -ftrivial-auto-var-init==zero would initialize automatic variables with zeroes unless the new "uninitialized" variable attribute was used on a particular variable for overriding the behavior.

  • An incomplete list of complaints about real code

    A couple of weeks ago, I got bored and decided to come up with a list of things that have bothered me when trying to run software to get things done. These might be reliability concerns, or development issues, or really anything else that bothered me at the time. This was actually pretty illuminating.

    I would actually recommend other people try it with their own annoyances and see how things stack up. It was interesting to look at the rows to see which choices were particularly bad because they hit so many of them, and then to look at the columns to see how often they showed up regardless of the language or environment.

  • Call for testing: OpenSSH 8.5

    OpenSSH 8.5p1 is almost ready for release, so we would appreciate testing on as many platforms and systems as possible. This is a bugfix release.

  • Four kinds of data anomalies

    Datasets sometimes contain perfectly well-formed items that really don't belong with the other items in their field. In my data auditing work, anomalous items are typically out of range, out of place, out of match or out of date. Below are some real-world examples.

  • How to make Eclipse run with a custom JDK on Mac |

    You might want to have more than one JDK on your Mac and run different programs with different JDK versions as it is with me.

    The easiest and safest way I’ve found is as follows.

Programming Leftovers

Filed under
Development
  • How-to: Writing a C shared library in rust

    All this information is great, but what I was looking for was a simple step-by-step example which also discussed memory handling and didn’t delve into the use of GObjects. I also included an opaque data type, but I’m not 100% sure if my approach is the most correct.

    I’m not going to discuss the entire subject of why you would want to do this. I’m thinking that if you’re reading this, then you already know why.

  • Perl weekly challenge 101

    Here are solutions to this weeks challenges from the Perl Weekly Challenge.

  • Patrick Griffis: Future of libsoup

    The libsoup library implements HTTP for the GNOME platform and is used by a wide range of projects including any web browser using WebKitGTK. This past year we at Igalia have been working on a new release to modernize the project and I’d like to share some details and get some feedback from the community.

    [...]

    Making the library smaller meant deleting a lot of duplicated and deprecated APIs, removing rarely used features, leveraging additions to GLib in the past decades, and general code cleanup. As of today the current codebase is roughly at 45,000 lines of C code compared to 57,000 lines in the last release with over 20% of the project deleted.

    Along with reducing the size of the library I wanted to improve the quality of the codebase. We now have improved CI which deploys documentation that has 100% coverage, reports code coverage for tests, tests against Clang’s sanitizers, and the beginnings of automated code fuzzing.

    Lastly there is ongoing work to finally add HTTP/2 support improving responsiveness for the whole platform.

  • memcpy.io | Upstream camera support for Qualcomm platforms

    CAMSS is a V4L2 (Video for Linux 2) Linux driver which focuses on supporting the basic use cases of the ISP, such as receiving the MIPI CSI-2 signals from the sensors, decoding them, and then writing them to memory. This leaves a lot of functionality typically provided by an ISP unimplemented, but that is intentional as the development priority has been to enable the data path from camera sensor to userspace.

  • bwidawsk.net 2.0

    I used plugins for my tables (multiple plugins). I used plugins for code highlighting. Plugins for LaTeX. Plugins for table of contents, social media integration, post tagging, image captioning and formatting, spelling. You get the idea. The result of all this was I ended up with a blog post that was entirely useless in its text only form. Plugins storing the data in non-standard places so it can be processed and look fancy.

    The WYSIWYG editor interface was a huge plus for me. I spent all day in front of a terminal breaking graphics and display (meaning I really was in front of an 80x24 terminal at times). I didn't want to have to deal with fanciful layout engines or styles. Those plugins ended up destroying the WYSIWYG editor experience and I ended up doing everything in quasi markdown anyway.

Programming Leftovers

Filed under
Development
  • How to use a key-value dictionary in bash

    While bash is not a general-purpose programming language, a recent version of bash (starting from version 4) has started to support dictionaries or associative arrays natively. In this tutorial, I demonstrate how you can use a key-value dictionary in bash. To help you understand better, I illustrate detailed usages of a dictionary using shell script examples.

  • Python For Loop | Linuxize

    Loops are one of the fundamental concepts of programming languages. Loops are used to perform repeated tasks until a certain condition is met.

    There are two main looping constructs in Python that allow you to repeat a block of code repeatedly, the for and the while loops.

    In this article, we will cover the basics of the for loops in Python. We will also show you how to use the range type to generate a sequence of numbers, and else, break and continue statements to alter the flow of a loop.

  • Dirk Eddelbuettel: pkgKitten 0.2.1: Now with roxygen2 support

    new release 0.2.1 of pkgKitten hit CRAN earlier today, and has been uploaded to Debian as well. pkgKitten makes it simple to create new R packages via a simple function invocation. A wrapper kitten.r exists in the littler package to make it even easier.

    This release builds on the support for tinytest we added in release 0.2.0 by adding more optional support, this time for roxygen2. It also corrects a minor documentation snafu, and updates the CI use.

  • Cache busting in Node.js dynamic ESM imports

    I’m porting JSDB to EcmaScript Modules (ESM) and one of the issues I had to look into was module cache invalidation.

Programming Leftovers

Filed under
Development
  • 15 Popular Machine Learning Metrics For Data Scientist | UbuntuPIT

    Machine learning is one of the most researched subjects of the last two decades. There is no end to human needs. But their production and working capability are limited. That’s why the world is moving towards automation. Machine Learning has a huge role in this industrial revolution. Developers are building more robust ML models and algorithms every day. But you cannot just throw your model into production without evaluating it. That’s where the machine learning metrics come in. Data scientists use these metrics to measure how good a model is predicting. You got to have a good idea about them. To make your ML journey convenient, we will be listing the most popular machine learning metrics you can learn to become a better data scientist.

  • Learn Pygame With Examples

    This post introduces pygame basic concepts. Before we procceed, make sure you have pygame library installed.

  • 2021.08 First 21 – Rakudo Weekly News

    Alexander Kiryuhin has just announced the release of the first Rakudo Compiler Release of 2021: 2021.02 which, among many other fixes and improvements, implements the .slice method on Seqs and adds support for passing multiple units to Date / DateTime‘s .earlier and .later methods as the most visual additions. Kudos to Alexander for making sure all of this work comes together again!

Programming Leftovers

Filed under
Development
  • GNU Parallel 20210222 ('Ang Sang Su Kyi') released

    GNU Parallel 20210222 ('Ang Sang Su Kyi') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
    Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4
    It does not have to be as detailed as Juan's. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.

  • Reading stdin with Emacs Client ― mina86.com

    One feature Emacs doesn’t have out of the box is reading data from standard input. Trying to open - (e.g. echo stdin | emacs -) results in Emacs complaining about unknown option (if it ends up starting in graphical mode) or that ‘standard input is not a tty’ (when starting in terminal).

    With sufficiently advanced shell one potential solution is the --insert flag paired with command substitution: echo stdin | emacs --insert <(cat). Sadly, it’s not a panacea. It messes up initial buffer (and thus may break setups with custom initial-buffer-choice) and doesn’t address the issue of standard input not being a tty when running Emacs in terminal.

  • rt.cpan.org to remain online

    Despite rt.cpan.org still displaying the sunset message, it is in fact not going away forever on the 1st of March, but will have an 'extended downtime' while it is moved elsewhere. In future it'd be nice if communications of such things, and even allowing others to have a say on the matter, could be handled better.

  • Perl Weekly Challenge 100: Fun Time and Triangle Sum
  • How do I Create an Alias in Bash? – Linux Hint

    Bash alias is a command-based shortcut title. Every alias comprises a single word (or maybe even a single letter), which can be used rather than a relatively long command. In the Linux system, there have been several instructions that we’ll need to utilize daily. If we can run some popular instructions by typing quick instructions, it would be very beneficial for all of us. Via bash aliases, Linux users can conveniently build commonly used shortcut commands for big commands. Bash aliases are not just used to ease the job and thus save users’ time.

  • How to Simulate an Array of Arrays in Bash – Linux Hint

    Bash is indeed an interpreted, interactive language, and how much space to reserve in advance does not have to be known. It is also possible to make ready a new array dynamically without declaring it or extending a previously defined array to include further entries. Still, multidimensional arrays aren’t supported by bash, and we can’t get array components that are also arrays. Fortunately, multidimensional arrays can be simulated. This article will provide some illustrations of the simulation of an array of arrays in a bash script.

  • Remove a Specific Element from an Array in Bash – Linux Hint

    Although the entire process is not very simple and might seem like a hack, you could perhaps remove an element from the existing array. We could be using more than one method to remove an element. One of the methods is “unset,” which is used to delete an element from a specific index and afterward replace it with some other array. Several other sets of elements can be deleted using: also. You can remove the list element from the end but only the solitary one using the pop() method. Let’s have some examples for this.

  • Erich Schubert: My first Rust crate: faster kmedoids clustering

    I have written my first Rust crate: kmedoids.

    Python users can use the wrapper package kmedoids.

    It implements k-medoids clustering, and includes our new FasterPAM algorithm that drastically reduces the computational overhead. As long as you can afford to compute the distance matrix of your data set, clustering it with k-medoids is now feasible even for large k. (If your data is continuous and you are interested in minimizing squared errors, k-means surely remains the better choice!)

Programming Leftovers

Filed under
Development
  • My XML sunk cost

    I’m often around people who hate XML (because yeah, it is pretty awful, almost as bad as as YAML or JSON) and I kinda squirm during the two minute hate sessions because I’ve spent so much time learning a bunch of XML-related tech.

  • A fold is a map

    OK, Scheme students, this is gonna get dense. Start at the top, don’t skip ahead, and when you’ve found the one you need, stop reading, grab it and get back to work.♥

  • Lupa~

    Lupa is a Gemini crawler. Starting from a few given URLs, it retrieves them, analyzes the links in gemtext (Gemini format) files and adds them to the database of URLs to crawl. It is not a search engine, it does not store the content of the resources, just the metadata, for research and statistics.

    Lupa is written in Python.

  • Gemini stats

    Gemini server statistics (2020-12)

    Statistics on Gemini servers, gathered on 2020-12-22 (give or take a few days), based on the list of hosts found at gemini://gus.guru/known-hosts

    To get complete results, get-tls-supported-versions.sh and get-tls1_2-supported-ciphers.sh need to be executed at least 2 times each, as connections might fail for various reasons.

  • Handling Unix Kill Signals in Rust - DEV Community

    Like many of you, I am a software developer. For the past few years, I've been working with Python, both at work, and writing small hobby projects at home.

    One of the most common things I do with Python is write Linux services/daemons. A linux daemon is a program, in our case written in Python, that runs in a loop, usually by SystemD, and only exits when it receives a kill signal.

    A few months ago, I decided to teach myself Rust, and after reading the Rust book (which I highly recommend), and watching lots of youtube videos, I tried to write a Rust Linux daemon.

Syndicate content

More in Tux Machines

Top 10 Linux Distros for Gaming

Exploring the top 10 most acceptable Linux distributions for fellow gamers is our main goal in this article. These have been hand-picked because of the overall experience you will get when you are gaming with them. The progress on Linux gaming development has been impressive over time, and it is no longer a dream. The Linux gaming distributions we will examine herein are greatly optimized for gaming. Critical in consideration are the drivers and applications that come with them. For instance, we are looking at the kind of emulators, the drivers, and the gaming software. With these distributions, you can play your game out of the box with minimal or no configuration needed. These gaming distros are very friendly. Read more

GNU Poke Reaches 1.0

  • Release notes for poke 1.0
    I am happy to announce the first release of GNU poke, version 1.0.
    
    The tarball poke-1.0.tar.gz is now available at
    https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz.
    
      GNU poke (http://www.jemarch.net/poke) is an interactive,
      extensible editor for binary data.  Not limited to editing basic
      entities such as bits and bytes, it provides a full-fledged
      procedural, interactive programming language designed to describe
      data structures and to operate on them.
    
    This release is the product of 3 years of work resulting in 4126
    commits, made by 19 contributors.
    
    The program is far from being perfect and there are known bugs and
    limitations in place.  We also have lots of awesome ideas still to be
    implemented, extensions we want to add, pickles for many data formats
    to write, documentation to improve, and lots of work in
    progress... the GUI, the machine-interface... working in poke is so
    fun that it is difficult to stop :'D
    
    But it is time to start the releasing cycles so everyone can benefit
    from poke, which is already immensely useful for many activities like
    systems programming, testing of software, design and documentation of
    file formats and protocols, reverse engineering, and much more.
    Releasing often will hopefully also bring in more developers to our
    little but enthusiastic community... there is so much to do!
    
    In any case, we wish you have fun with poke and that you find it
    useful.
    
    Please send us comments, suggestions, bug reports, *patches*,
    questions, complaints, bitcoins, or whatever, to poke-devel@gnu.org.
    
    Many of the poke developers and users populate the #poke IRC channel
    at irc.freenode.net, and you are more than welcome to join us there
    and say hello.
    
    Now it is time to mention the names of all the people who have
    contributed with code and/or documentation to this release.  In
    certain but no significant order they are:
    
       John Darrington
       Tim Rühsen
       Luca Saiu
       Bruno Haible
       Mohammad-Reza Nabipoor
       Eric Blake
       Egeyar Bagcioglu
       Kostas Chasialis
       Darshit Shah
       Dan Čermák
       David Faust
       Carlo Caione
       Henner Zeller
       Aurelien Aptel
       Indu Bhagat
       Darkstar
       Michael Drüing
       Pierre-Evariste Dagand
    
    My gratitude to you all!  It is a real pleasure to hack with you.
    
    Finally, as a personal note, I would like to dedicate this release to
    my father Eduardo.  For this is also your work in a sense, and I love
    you very much.
    
    And this is all for now.
    Happy poking!
    
  • GNU poke 1.0 released

    Version 1.0 of GNU poke is out. "GNU poke (http://www.jemarch.net/poke) is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them."

  • GNU poke 1.0 released
  • GNU Poke 1.0 Released For Poking At Binary Data

    The newest GNU project seeing its first release is GNU Poke, which is being inaugurated at v1.0 after being in development for the past three years. GNU Poke 1.0 is an interactive editor for binary data that beyond basic editing capabilities has an integrated, interactive programming language for describing data structures and operating on them. There is a GUI in the works for Poke along with many other features planned but after the initial three years of development they feel it's now in good enough shape for declaring a 1.0 release.

5.12 Kernel: Data Loss Risk, Adreno, and Firmware Performance Data

  • Watch Out For Possible Data Loss On Early Linux 5.12 Kernels - Phoronix

    As a quick PSA for those that may be eager to test out early Git builds of the Linux 5.12 kernel, I've been hitting a very nasty issue on multiple systems leading to corruption / data loss.

  • More Open-Source Adreno 500 Series Support, A6xx Speedbin Sent In For Linux 5.12 - Phoronix

    Last week the main set of DRM subsystem updates were sent in for the Linux 5.12 merge window. That pull included exciting additions like Radeon RX 6000 series OverDrive and Intel Xe VRR. Mistakenly left out of that pull request last week were the open-source Qualcomm Adreno driver improvements for the "MSM" kernel driver while now that code has landed. As previously noted, there are some noteworthy Adreno improvements this cycle. The driver now has support for the Adreno 508 / 509 / 512 GPUs with the Adreno 508 being found in the Snapdragon 630, the 509 in the Snapdragon 636, and the 512 is in the Snapdragon 660.

  • Linux 5.12 To Expose Firmware Performance Data - Phoronix

    Last week saw the main set of ACPI and power management updates for Linux 5.12 while for the second week of the merge window has been the follow-up work with Intel Simple Firmware Interface removal and also an additional ACPI update. Noteworthy with yesterday's ACPI pull is support for parsing of the ACPI Firmware Performance Data Table (FPDT) and now exposing that under sysfs. The ACPI FPDT tables provide platform initialization platform records with data pertaining to the boot process. Via the Firmware Performance Data Table it's possible to track the performance of each UEFI phase - helpful in measuring hardware/software changes, etc.

Today in Techrights