news
Programming Leftovers
-
Philip Zucker ☛ Implementing E Unification using SMT
Any method for solving unification problems can be basically plugged black box into the applications of type inference (hindley milner stuff), prolog, minikanren, resolution theorem proving, and knuth bendix proving.
SMT solvers are super useful and intrinsically support arithmetic and other cool things. They return ground models however which are too specific to be the desired solutions to unification problems.
A question: How can one use an SMT solver to return a more general unification solution? I have some ideas.
-
The New Stack ☛ Process Theater vs. Technical Excellence: A Recurring Software Crisis
The crisis comes from a tendency for management to be attracted to process and repelled by technical and cultural practices. They have a craving to reintroduce elements of waterfall that were expertly removed, and they want to discard crucial techniques that they don’t understand (or sound like hard work).
Increasing process weight while decreasing technical excellence is a path to destruction.
-
Edoardo Vacchi ☛ The Return of Language-Oriented Programming | Middle of Nowhere
Rather than traditional top-down or bottom-up development, LOP proposes a “middle-out” approach:
1. Design a domain-oriented language suited for the specific problem domain
2. Split development into two independent parallel tracks:
• Implement the system using this middle-level language
• Implement a compiler/interpreter for the languageDomain-Specific Languages are small languages designed to focus on a specific aspect of a software system. We deal with DSLs every day: SQL can be considered a DSL, LaTeX is a DSL, AWK is a DSL, Kubernetes’ YAMLs are a DSL. They are “domain-specific” because they are used to write code for a given “subdomain” of the software system. In this sense, they have been also described as a means of communcation between a developer and a “domain-expert”. The holy grail of computing for many years was to let such “domain experts” write the code themselves, while developers would only validate it and deploy it in the large system.
-
Perl / Raku
-
Rakulang ☛ 2025.45 Advent of Advent
It’s that time of the year again: the time for writing Raku Advent Calendar blog posts! So that we can all enjoy them in the darkest days of the year (well, at least on the Northern Hemisphere). The elven have opened up the 2025 list of articles to be. Please add your name and proposed article title: beginner or medium or advanced. Or tongue-in-cheek, or ultra technical. It will all be well appreciated!
-
-
Python
-
LWN ☛ Pytest 9.0.0 released
Version
9.0.0 of pytest has been released. Notable changes in this release
include the addition of subtests,
native support for TOML configuration files, and a new strict
mode. See the changelog
for a complete list of new features, enhancements, and bug fixes.
-
University of Toronto ☛ Python virtual environments and source code trees
Python virtual environments are mostly great for actually deploying software. Provided that you're using the same version of Python (3) everywhere (including CPU architecture), you can make a single directory tree (a venv) and then copy and move it around freely as a self-contained artifact. It's also relatively easy to use venvs to switch the version of packages or programs you're using, for example Django. However, venvs have their frictions, at least for me, and often I prefer to do Python development outside of them, especially for our Django web application).
(This means using 'pip install --user' to install things like Django, to the extent that it's still possible.)
-
-
R / R-Script
-
Rlang ☛ Little useless-useful R functions – Finding substrings in number Pi
They say that number Pi holds all infinite possibilities, all the words, all the combinations. Well, easier said to be done. So let’s put this to a test.
-
-
Java/Golang
-
Linuxiac ☛ NetBeans 28 Delivers Gradle and Maven Enhancements for Java Developers
This update brings full compatibility with Gradle 9, resolving multiple long-standing issues related to project dependency resolution and file collection handling. NetBeans 28 also upgrades the bundled Gradle tooling to version 8.11.1 and now defaults to JDK 25.
-
Linuxiac ☛ NetBeans 28 Delivers Gradle and Maven Enhancements for Java Developers
Apache NetBeans 28 cross-platform IDE improves Gradle 9 support, refines Maven UI handling, and expands JUnit integration.
-
-
Rust
-
Niko Matsakis: Just call clone (or alias)
Continuing my series on ergonomic ref-counting, I want to explore another idea, one that I’m calling “just call clone (or alias)”. This proposal specializes the
cloneandaliasmethods so that, in a new edition, the compiler will (1) remove redundant or unnecessary calls (with a lint); and (2) automatically capture clones or aliases inmoveclosures where needed. -
Rust Blog ☛ The Rust Programming Language Blog: Announcing Rust 1.91.1
The Rust team has published a new point release of Rust, 1.91.1. Rust is a 1.91.1 is as easy as: [...]
-