Programming Leftovers
-
TechTarget ☛ 5 essential programming languages for cybersecurity pros
Coding is an important skill across almost every technology discipline today, and cybersecurity is no exception. Learn about the top programming languages for security professionals.
-
Hackaday ☛ C Compiler Exists Entirely In Vim
8cc.vim is a C compiler that exists as pure Vimscript. Is it small? It sure is! How about fast? Absolutely not! Efficient? Also no. But does it work and is it neat? You betcha!
-
Hackaday ☛ Custom Microcode Compiler, Made In Google Sheets
When homebrewing a CPU, one has to deal with microcode. Microcode is the low-level nuts and bolts of how, precisely, a CPU executes instructions (like opcodes) and performs functions such as updating the cycle counter or handling interrupt requests. To make this task easier, [Bob Alexander] created a microcode compiler built in Google Sheets to help with his own homebrew work, but it’s flexible and configurable enough to be useful to others, as well.
-
Russ Allbery ☛ Russ Allbery: DocKnot v8.0.0
DocKnot is my static web site generator, with additional features for managing software releases and package documentation. This release switches to semantic versioning for the Perl modules, hence the
v
prefix to the version number. This appears to be the standard in the Perl world for indicating that the version follows the semantic versioning standard. That also required adding support to DocKnot for release tarballs whose version string starts withv
. I plan to convert all of my Perl modules to semantic versioning in their next releases. -
Rlang ☛ Visualising NREL’s Annual Technology Baseline ("ATB") data for wind and solar energy using R
In the US, the Federal Government's National Renewable Energy Lab released the 2024 "Annual Technology Baseline" a couple of weeks ago. The large, yearly dataset does a few things.
-
Dirk Eddelbuettel ☛ Dirk Eddelbuettel: RcppSimdJson 0.1.12 on CRAN: Maintenance
A new maintenance release 0.1.12 of the RcppSimdJson
This release responds to another CRAN request, this time to accomodate compilation under C++20 with
g++-14
. As this was alreadt addressed upstream in simdjson it was simply a matter of upgrading to the current upstream which Daniel did in a PR.The (once again very short) NEWS entry for this release follows.
-
Jamie Zawinski ☛ Mystery PHP process death
Again, most of the time it works just fine, even if it was running for over an hour. But sometimes it exits without logging a reason.
-
Daniel Fedorin ☛ Implementing and Verifying "Static Program Analysis" in Agda, Part 0: Intro
Some years ago, when the Programming Languages research group at Oregon State University was discussing what to read, the Static Program Analysis lecture notes came up. The group didn’t end up reading the lecture notes, but I did. As I was going through them, I noticed that they were quite rigorous: the first several chapters cover a little bit of lattice theory , and the subsequent analyses – and the descriptions thereof – are quite precise. When I went to implement the algorithms in the textbook, I realized that just writing them down would not be enough. After all, the textbook also proves several properties of the lattice-based analyses, which would be lost in translation if I were to just write C++ or Haskell.
-
Daniel Fedorin ☛ Implementing and Verifying "Static Program Analysis" in Agda, Part 1: Lattices
This is the first post in a series on static program analysis in Agda. See the introduction for a little bit more context.
The goal of this post is to motivate the algebraic structure called a lattice . Lattices have broad applications See, for instance, Lars Hupel's excellent introduction to CRDTs which uses lattices for Conflict-Free Replicated Data Types. CRDTs can be used to implement peer-to-peer distributed systems. beyond static program analysis, so the work in this post is interesting in its own right. However, for the purposes of this series, I’m most interested in lattices as an encoding of program information when performing analysis. To start motivating lattices in that context, I’ll need to start with monotone frameworks.
-
MaskRay ☛ Linker compatibility and the "User-Agent" problem
The output of ld.lld -v includes a message "compatible with GNU linkers" to address detection mechanism used by GNU Libtool. This problem is described by Software compatibility and our own "User-Agent" problem.
-
Shell/Bash/Zsh/Ksh
-
Maarten van Gompel ☛ Text processing on the Command Line - sharing my tools
Chaining multiple heterogeneous tools in this way gives a great amount of power and flexibility, something that's much harder to achieve through complex monolithic GUIs. It allows to quickly automate things in shell scripts and do batch processing, even if the underlying tools are written in different languages.
For text processing and data science, the unix shell and environment kind of form the lingua franca of data science; a common foundation upon which we can build our data processing pipelines. This environment is usually a unix-like system such as Linux or macOS that offers a (POSIX-compliant) shell like bash and a set of core utilities such as provided by GNU coreutils and friends, by FreeBSD/OpenBSD/NetBSD/macOS itself or by busybox. All of these are different implementations of the same core utilities, but following some standard specification (POSIX). Even Windows users have access to such a command-line environment via the WSL, or alternatively via Cygwin.
-
Lev Lazinskiy ☛ Scripting GNOME Terminal Tabs in Debian
This is where tmux comes to the rescue. tmux allows you create a resilient terminal session that can withstand network issues, create split panes in the same window, move long running tasks to the background, and overall makes doing important work on a server a lot less error prone. When I was at Linode, someone taught me that “if it’s worth doing, it’s worth doing in tmux”. I think about that often, especially when I am doing things that I should be doing in tmux outside of tmux and live to regret it.
-
-
Rust
-
Linux Plumbers Conference (LPC) ☛ Linux Plumbers Conference: Rust Microconference CFP
The Rust Microconference returns this year again. It covers both Rust in the kernel and Rust in general.
The submission deadline is July 14th. Submissions are made via the LPC submission system, selecting Rust MC for Track. Please see The Ideal Microconference Topic Session as well.
-