news
Programming Leftovers
-
Rlang ☛ ‘Bayesian’ optimization of hyperparameters in a R machine learning model using the bayesianrvfl package
-
Rlang ☛ Function Generators vs Partial Application in R
In which I confront the way I read code in different languages, and end up wishing that R had a feature that it doesn’t.
This is a bit of a thought-dump as I consider some code – please don’t take it as a criticism of any design choices; the tidyverse team have written magnitudes more code that I have and have certainly considered their approach more than I will. I believe it’s useful to challenge our own assumptions and dig in to how we react to reading code.
-
Sean Goedecke ☛ Senior engineers should make side bets | sean goedecke
What is a side bet? It’s a project or task that you think will be valuable to the company, but that isn’t on anyone else’s radar. It could be a new feature, or a performance optimization, or a change that will speed up development - as long as it could provide a concrete benefit1.
-
Terence Eden ☛ Reverse Geocoding is Hard
My wife and I run OpenBenches - a crowd-sourced database of nearly 40,000 memorial benches. Every bench is geo-tagged with a latitude and longitude. But how do you go from a string of digits to something human readable?
-
Dr Jonathan Carroll ☛ Function Generators vs Partial Application in R
The blog post describing the latest updates to the tidyverse {scales} package neatly demonstrates the usage of the new functionality, but because the examples are written outside of actual plotting code, one feature stuck out to me in particular…
-
Malcom Coles ☛ On Bloat
I recently got sent the slides for a talk titled On Bloat by Rob Pike, that can be found here. I don’t know the origin of the talk or what the intention was and only have the slides to go by.
The presentation makes the superficial observation that hardware has become significantly faster since the first mainframes yet software does not feel like it has utilized those gains well. Computers don’t boot instantly. Logging into your bank has some noticeable latency, etc.
This segues in to how code size has grown considerably and this has all sorts of consequences, including slower programs and more bugs. The primary drivers of this are: [...]
-
Simon Josefsson ☛ Simon Josefsson: GitLab Runner with Rootless Privilege-less Podman on riscv64
I host my own GitLab CI/CD runners, and find that having coverage on the
riscv64
CPU architecture is useful for testing things. The HiFive Premier P550 seems to be a common hardware choice. The P550 is possible to purchase online. You also need a (mini-)ATX chassi, power supply (~500W is more than sufficient), PCI-to-M2 converter and a NVMe storage device. Total cost per machine was around $8k/€8k for me. Assembly was simple: bolt everything, connect ATX power, connect cables for the front-panel, USB and and Audio. Be sure to toggle the physical power switch on the P550 before you close the box. Front-panel power button will start your machine. There is a P550 user manual available. -
Andy Wingo: partitioning ambiguous edges in guile
Today, some more words on memory management, on the practicalities of a system with conservatively-traced references.
The context is that I have finally started banging Whippet into Guile, initially in a configuration that continues to use the conservative Boehm-Demers-Weiser (BDW) collector behind the scene. In that way I can incrementally migrate over all of the uses of the BDW API in Guile to use Whippet API instead, and then if all goes well, I should be able to switch Whippet to use another GC algorithm, probably the mostly-marking collector (MMC).
-
GCC ☛ GCC 15 Release Series
The GCC developers are pleased to announce the release of GCC 15.1.
-
LWN ☛ GCC 15.1 released
Version 15.1 of the GNU
Compiler Collection has been released. Changes include implementing the
C23 dialect by default, a number of new C++26 features, experimental
support for unsigned integers in Fortran, a new COBOL front end, and
more. See the GCC 15
changes page for details.
-
Adam Young: My math was wrong
In my last article, I posted a function for calculating one partition of a larger matrix. THe function looked like this
This is actually wrong. Lets look where I messed up. It was all the way back in the equation.
-
Qt ☛ Some recent changes to choice of L10n and I18n
Since 6.7 there has been a flury of activity in how Qt choses, and helps its users chose, suitable localisation and internationalisation. That flurry seems to have settled down now, in 6.9, so it's time to give a summary of what's changed and why. The story actually starts in 6.4 with a fix for QTBUG-102796, to make the ordering of entries in uiLanguages() consistent between the system locale and those based on data from the Unicode Consortium's Common Locale Data Repository (CLDR).
-
Python
-
Raymond Camden ☛ Using Cloudflare's Browser Rendering APIs for Screenshots
Ok, how about a quick demo? I wrote a simple Python script that lets me pass a URL, and an optional width and height to the command line. The script will then hit the API, generate the image, and save it to a slugified version of the URL: [...]
-