news
Programming Leftovers
-
Brandon Rozek ☛ Deterministically Iterating over a set within Dafny functions
Say we have a set that we want to iterate over within a pure Dafny function. For sake of example, we will look at a set of strings. In Dafny, var x :| condition denotes “let us define variable x such that [condition]”. Therefore, a first attempt at writing our function might be: [...]
-
Simon Willison ☛ Identify, solve, verify
My job is to identify problems that can be solved with code, then solve them, then verify that the solution works and has actually addressed the problem.
-
Thomas Rigby ☛ Quoting Simon Willison on why AI won't take my job
This is something I'm coming to realise. Even if LLMs get so good at writing code they can do that entire bit of my job for me, they still need me to give them the problem to solve.
-
R / R-Script
-
Rlang ☛ A Primer on Power Simulations when Evaluating Experimental Designs
When you design experiments, you need to know how many participants it takes to get informative results. But what makes results informative?
-
Rlang ☛ From R to Tableau – Leverage Both Tools for Effective Dashboards
When the violence causes silence, we must be mistaken.
-
Rlang ☛ Bioconductor and ggplot2 4.0.0: What’s Changing and How to Prepare
A major update to ggplot2 (version 4.0.0) is expected around mid-to-late July 2025. It brings a significant internal change, replacing most of the S3 backend with the newer S7 object system. While this improves long-term maintainability and extensibility, it may break Bioconductor packages that depend on ggplot2, especially those that customise how plots are built or styled. Packages that use ggplot2 for typical plotting tasks, such as creating plots with ggplot() and geom_*(), are unlikely to be affected.
-
Rlang ☛ Creating tutorial worksheets; Quarto profiles for the win!
I previously posted about creating tutorial worksheets for 4 different Quarto engines (for R, Python, Stata, and Julia) using conditional content. However, that approach is a bit hacky and I wasn’t very happy with it.
Thanks to a vignette by Christophe Dervieux in the quarto R package I realised there is a more convenient, and less hacky, way to create tutorial documents using Quarto profiles. I don’t use the dynamic metadata approach in the vignette to achieve my solution but it led me to relevant Quarto documentation page and I discuss it at the end of this post.
My aim is the following [...]
-
-
Python
-
The New Stack ☛ Decode Any Python Code With This 5-Step Method
Being able to read others’ code is essential for maintaining, improving and collaborating on any meaningful software project. It’s rare to write all the original code in an application yourself, and even rarer for an application to be completely rewritten from scratch. More likely, your workflow will involve working with code that was written by someone else (who may no longer be available to explain it) and iterated on by others (who also might be out of reach) long before it ever appears on your screen.
-
-
Shell/Bash/Zsh/Ksh
-
University of Toronto ☛ The easiest way to interact with programs is to run them in terminals
I recently wrote about a new little script of mine, which I use to start programs in terminals in a way that I can interact with them (to simplify it). Much of what I start with this tool doesn't need to run in a terminal window at all; the actual program will talk directly to the X server or arrange to talk to my Firefox or the like. I could in theory start them directly from my X session startup script, as I do with other things.
-
-
Golang
-
Miguel Young de la Sota ☛ What's //go:nosplit for?
Most people don’t know that Go has special syntax for directives. Unfortunately, it’s not real syntax, it’s just a comment. For example, //go:noinline causes the next function declaration to never get inlined, which is useful for changing the inlining cost of functions that call it.
-
-
Raku
-
Rakulang ☛ Rakudo Weekly 2025.27 Your First Language?
Wayland’s Corner Wayland makes the case for Raku: Your First Language? Python … draws in developers who know nothing but Python their entire lives. It trains them in The Python Way.
-