Jose E. Marchesi, a GNU developer, writes about GNU poke, an editor for structured binary data, and about ALGOL 68.
HN commenters recommend GNU poke for editing binary data and repetitive tasks, and link his ALGOL 68 jargon page.
I am happy to announce a new release of GNU poke, version 4.1.
This is a bugfix release in the 4.x series.
See the file NEWS in the distribution tarball for a list of issues fixed in this release.
The tarball poke-4.1.tar.gz is now available at https://ftp.gnu.org/gnu/poke/poke-4.1.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.
Thanks to the people who contributed with code and/or documentation to this release.
Happy poking!
I've long looked for something like this for my day job, which involves implementing many different custom binary network protocols.
One new project in this space is poke:
http://www.jemarch.net/poke
It can describe arbitrary formats for both reading and writing, and it's usable programmatically, so I think it can solve the problem!
I haven't gotten my hands dirty with it myself yet, but Poke looks super interesting!
https://www.jemarch.net/poke
https://media.ccc.de/v/ASG2019-127-gnu-poke-an-extensible-editor-for-structured-binary-data
Actually, it sounds like a fun weekend task to redo this GeoTIFF writeup in Poke :-)
If you want to peer into an alternative reality / funhouse mirror of programming terms, you should look at ALGOL 68. For instance, types are called "modes".
https://jemarch.net/a68-jargon/
(There are also "incestuous unions", which is the actual term used in the spec.)
There's also "poke" which is actively developed by a hacker on GDB and GCC:
http://www.jemarch.net/poke
https://kernel-recipes.org/en/2019/talks/gnu-poke-an-extensible-editor-for-structured-binary-data/
I like GNU poke for futzing with binary data.
http://www.jemarch.net/poke
The poke and other folks had an online conference recently called Binary Tools Summit:
https://binary-tools.net/summit