news
Programming Leftovers
-
The Register UK ☛ PHP 8.5 adds pipe operator and new URI tools
PHP, short for Personal Home Page when initially released in 1995 by Rasmus Lerdorf, now stands for PHP: Hypertext Preprocessor. Version 8.5 is a major release that brings with it a handful of useful new capabilities. It follows PHP 8.4, which debuted a year ago.
-
Linuxiac ☛ PHP 8.5 Introduces URI Extension, Pipe Operator, and Syntax Improvements
One of the most significant additions is the new built-in URI extension. It provides a consistent API for parsing and modifying URLs, following both RFC 3986 and the WHATWG URL standards. Backed by uriparser and Lexbor, it replaces parse_url() in scenarios where accurate, standards-compliant handling is required.
-
Modus Create LLC ☛ Migrating to Bazel symbolic macros
In Bazel, there are two types of macros: legacy macros and symbolic macros, that were introduced in Bazel 8. Symbolic macros are recommended for code clarity, where possible. They include enhancements like typed arguments and the ability to define and limit the visibility of the targets they create.
This post is intended for experienced Bazel engineers or those tasked with modernizing the build metadata of their codebases. The following discussion assumes a solid working knowledge of Bazel’s macro system and build file conventions. If you are looking to migrate legacy macros or deepen your understanding of symbolic macros, you’ll find practical guidance and nuanced pitfalls addressed here.
-
Jamie Zawinski ☛ Happy BitBLT Day to all who celebrate
And it wasn't just a gimmick; if you had BitBLT microcode, it was a very fast way of rotating a bitmap!
-
University of Toronto ☛ There's always going to be a way to not code error handling
Every popular programming language has something like this. In Python you can ignore the possibility of exceptions, in C and Go you can ignore or explicitly discard error returns, in Java you can catch and ignore all exceptions, and so on. What varies from language to language is what the consequences are. In Python and Rust, your program dies (with an uncaught exception or a panic, respectively). In Go, your program either sails on making an increasingly big mess or panics (for example, if another return value is nil when there's an error and you try to do something with it that requires a non-nil value).
-
Python
-
Lee Yingtong Li ☛ Microsoft Access .accdb encryption and simple Python implementation
Current versions of Microsoft Access store databases in the proprietary .accdb file format. Some public descriptions of the .accdb format have been made based on reverse engineering; for example, The Unofficial MDB Guide and mdbtools (despite the names, both also cover .accdb files). Although .accdb encryption has also been reverse engineered (e.g. Jackcess Encrypt), there does not appear to be a written summary. This article aims to address that gap.
The general details of encryption in Microsoft Office products are described in Microsoft's open specifications at MS-OFFCRYPTO: Office Document Cryptography Structure. However, Microsoft Access is not covered by the open specifications – a number of implementation details are not publicly described, and Microsoft Access deviates from the specification in at least one critical area.
-
-
Shell/Bash/Zsh/Ksh
-
HowTo Geek ☛ 15 Special Characters You Need to Know for Bash
If you want to master the Bash shell on Linux, macOS, or another UNIX-like system, special characters (like ~, *, |, and >) are critical. We'll help you unravel these cryptic Linux command sequences and become a hero of hieroglyphics.
-
-
Java/Golang
-
Paweł Grzybek ☛ Graceful shutdown in Go
I have read a number of articles about the subject and, as with everything in programming, there is more than one way to crack an egg. This is the way I ended up doing it in my recent project. The example here is a simple HTTP server, but the same technique applies to all long-running applications. It is not a comprehensive solution that handles all the edge cases, but a good base.
-
Filippo Valsorda ☛ The 2025 Go Cryptography State of the Union
This past August, I delivered my traditional Go Cryptography State of the Union talk at GopherCon US 2025 in New York.
It goes into everything that happened at the intersection of Go and cryptography over the last year.
-
-
Rust
-
Rust Blog ☛ The Rust Programming Language Blog: Switching to Rust's own mangling scheme on nightly
TL;DR: rustc will use its own "v0" mangling scheme by default on nightly versions instead of the previous default, which re-used C++'s mangling scheme, starting in
nightly-2025-11-21
-