news
Programming Leftovers
-
Gunnar Wolf ☛ We, Programmers A Chronicle of Coders from Ada to AI
When this book was presented as available to review, I jumped for it: who does not love reading a nice bit of computing history, as told by a well-known author (affectionaly known as “Uncle Bob”), one that has been immersed in computing since forever… What is not to like there?
Reading on, the book does not disappoint. Much to the contrary, it digs into details absent in most computer history books that, being an Operating Systems and Computer Architecture geek, I absolutely enjoyed. But let me first address the book’s organization.
-
Dirk Eddelbuettel ☛ rcppmlpackexamples 0.0.1 on CRAN: New Package
mlpack is a fabulous project providing countless machine learning algorithms in clean and performant C++ code as a header-only library. This gives both high performance and the ability to run the code in resource-constrained environment such as embedded systems. Bindings to a number of other languages are available, and an examples repo provides examples.
The project also has a mature R package on CRAN which offers the various algorithms directly in R. Sometimes, however, one might want to use the header-only C++ code in another R package. How to do that was not well documented. A user alerted me by email to this fact a few weeks ago, and this lead to both an updated mlpack release at CRAN and this package.
-
David Celis ☛ The DHH Problem
Back in 2014, Tom Stuart delivered a pithy yet salient lightning talk at the Scottish Ruby Conference titled The DHH Problem, in which he succinctly describes the character of David Heinemeier Hansson, the creator of Rails. I recommend watching it because, in just three and a half minutes, he effectively provides context on who DHH was, who he still is, and why his future shift to the right would make so much sense and be so unsurprising. But, if you’d rather not, I’ll include a transcript below: [...]
-
Mark-Jason Dominus ☛ My new git utility `what-changed-twice` needs a new name
As I have explained in the past, my typical workflow is to go along commiting stuff that might or might not make sense, then clean it all up at the end, doing multiple passes with git-add and git-rebase to get related changes into the same commit, and then to order the commits in a sensible way. Yesterday I built a new utility that I found helpful. I couldn't think of a name for it, so I called it what-changed-twice, which is not great but my I am bad at naming things and my first attempt was analyze-commits. I welcome suggestions. In this article I will call it Fred.
-
Ruud van Asseldonk ☛ The story of Musium
Musium is my ultimate yak shave. It’s NIH’d across the stack. It uses my flac decoder, and I implemented the loudness analysis, normalization, and high pass filter. The application is built around a custom in-memory index. It persists data to SQLite, for which I wrote a code generator that generates Rust bindings for SQL queries, and the frontend is written in PureScript using my own html builder library. I take joy in getting the details right: the seek bar is not just a line, it renders a waveform, and the UI is animated throughout. Musium tracks fairly elaborate statistics about playcounts, so it can surface interesting music at the right time, and I developed a new shuffling algorithm for it. Not only is it a lot of fun to build, Musium does exactly what I want it to do, and that’s very satisfying. As an entry for the Lobsters blog carnival, this is its story.
-
Perl / Raku
-
Arne Sommer ☛ Diff Peak with Raku
You are given an array of integers having four or more elements.
Write a script to find two pairs of numbers from this list (four numbers total) so that the difference between their products is as large as possible.
-
-
Java/Golang
-
The New Stack ☛ Java Language Architect Brian Goetz on How Java Could Evolve
Goetz discussed not the Java we have now, but a hypothetical “set of features that are designed not to be used by themselves as a way to write better programs — but as a mechanism for making the language more growable and more extensible.”
In short, Goetz explained how he sees the Java language evolving.
-
[Old] Ricardo Gomes da Silva ☛ Golang on the PlayStation 2 (part 3)
There are multiple things I’d like to do at this point in the project. The first one, however, is to reduce the amount of hacks on TinyGo itself, specially as they are very platform-specific. If I had to choose, I’d prefer to have them on the LLVM codebase, leaving TinyGo generating a normal bog standard IR code. For that, I need to dive deeper into that world.
-