news
Programming Leftovers
-
Sean Voisen ☛ Philosophy for Designers 1: Phenomenology and the impossibility of experience design
Let’s consider a simple scenario involving two completely different people using the exact same banking app on identical iPhones. The first person is walking down a busy street on their way to work, frantically trying to figure out why they suddenly have a bunch of fraudulent charges on their account, desperately seeking customer support information but their phone is low on battery and keeps losing service. The second person is sitting at home on a Sunday morning, leisurely sipping a cup of coffee, moving money from their checking account into an ever-growing savings cushion. While both of these people are using the same app, viewing the same user interface, exploring the same information architecture, and are even using identical hardware, they are having vastly different experiences.
-
SciML ☛ Introducing SymbolicSMT.jl: Bridging Symbolic Computing and Constraint Solving
Mathematical reasoning often requires more than just symbolic manipulation—it demands the ability to reason about constraints, prove properties, and solve complex logical problems. Today, we're excited to announce SymbolicSMT.jl, a groundbreaking library that seamlessly integrates the power of Microsoft's Z3 SMT solver with Julia's Symbolics.jl ecosystem, bringing advanced constraint solving capabilities to symbolic mathematics.
-
R / R-Script
-
Rlang ☛ wbstats is back on CRAN
Something similar happened to the tradestatistics package I created and that I have maintained in the last nine years. I adapted the tradestatistics approach to comply with CRAN’s policies for wbstats, which consisted in using mocked tests with pre-recorded API queries thanks to the vcr package, and now it’s back to CRAN. Other required changes where tiny changes about the documentation and the package structure.
-
Rlang ☛ The ‘Tanakh’ R package
If this post is useful to you I kindly ask a minimal donation on Buy Me a Coffee. It shall be used to continue my Open Source efforts. The full explanation is here: A Personal Message from an Open Source Contributor.
-
Dirk Eddelbuettel ☛ Dirk Eddelbuettel: RcppSimdJson 0.1.14 on CRAN: New Upstream Major
A brand new release 0.1.14 of the RcppSimdJson package is now on CRAN.
RcppSimdJson wraps the fantastic and genuinely impressive simdjson library by Daniel Lemire and collaborators. Via very clever algorithmic engineering to obtain largely branch-free code, coupled with modern C++ and newer compiler instructions, it results in parsing gigabytes of JSON parsed per second which is quite mindboggling. The best-case performance is ‘faster than CPU speed’ as use of parallel SIMD instructions and careful branch avoidance can lead to less than one cpu cycle per byte parsed; see the video of the talk by Daniel Lemire at QCon.
This version includes the new major upstream release 4.0.0 with major new features including a ‘builder’ for creating JSON from the C++ side objects. This is something a little orthogonal to the standard R usage of the package to parse and load JSON data but could still be of interest to some.
-
Education
-
Rlang ☛ Structural Bayesian Techniques for Experimental and Behavioral Economics, With applications in R and Stan workshop
Description: If you have an economic model, then in principle you can estimate its parameters using structural techniques. In experimental and behavioral economics these models typically describe how people make decisions, describing phenomena such as distributional preferences, risk-aversion, time preferences, levels of strategic thinking, and strategies used by players in games. Bayesian techniques lend themselves especially well to estimating these models for at least three reasons. Firstly, hierarchical Bayesian modeling handles well the heterogeneity we can expect there to be between participants in economic experiments. Secondly, when doing structural estimation, we are often interested in reporting transformations of our model’s parameters, and this is very easy to implement in the Bayesian framework. Finally, recent developments in the software for estimating Bayesian models have made doing this easier and less computationally taxing.
-
-
-
Python
-
Justin Duke ☛ Why our pytest suite is slow
The speed of Buttondown's pytest suite (which I've written about here, here, and here) is a bit of a scissor for my friends and colleagues: depending on who you ask, it is (at around three minutes when parallelized on Blacksmith) either quite fast given its robustness or unfathomably slow.
-
-
Shell/Bash/Zsh/Ksh
-
Darren Goossens ☛ mrxvt on Debian in 2025
This follows from the same post but for openSUSE. Well, I know mrxvt is a bit of the past, but it’s very light and fast and I like it. I especially like it for logging in to a remote box using ssh then running mrxvt on the remote host so I get multiple windows onto the host in a neat presentation. Yes, there are other tabbed terminal emulators.
-
-
Java
-
Nicolas Fränkel ☛ Comparing transitive dependency version resolution in Rust and Java
You learn by comparing to what you already know. I was recently bitten by assuming Rust worked as Java regarding transitive dependency version resolution. In this post, I want to compare the two.
-