Programming and Technical Leftovers
-
David Buchanan ☛ Text Editors Should Be Worse
My rationale is simple: I hate context switching. I want my input sequences to always work, no matter what software I'm using. Trying to apply deeply ingrained muscle memory in the wrong context and having it not work can be extremely frustrating.
As you can maybe guess from that, modal text editors like vim don't work for me. Consider them to be outside the scope of this rant—I only care about text editors (and more broadly, text inputs) that are superficially "normal."
-
[Repeat] Chris ☛ Estimating Standard Deviation From Timeseries
Why did we get a higher number when estimating the standard deviation from the moving ranges? Because the consecutive differences are not a global measurement of spread, but really account for spread-within-the-sequence-as-observed. For forecasting, that is almost always the appropriate measure of spread. In other words, if the numbers are drawn from a nice distribution when looked at atemporally, but they happen to fluctuate wildly from year to year, this method will over-estimate the standard deviation – just like we want when we produce a prediction interval.
S = k log W. The rest is commentary.
-
University of Toronto ☛ Why Unix's lseek() has that name instead of 'seek()'
The first version of Unix (V1) had a 'seek()' system call. Although C did not yet exist, this system call took three of what would be ints as arguments, Since Unix was being written on the Digital PDP-11, a '16-bit' computer, these future ints were the natural register size of the PDP-11, which is to say they were 16 bits. Even at the time this was recognized as a problem; the OCR'd V1 seek() manual page says (transformed from hard formatting, and cf): [...]
-
James G ☛ Adventures with compression: Part 3
I am continuing down the rabbit hole of compression. I aim to compress 1GB of Wikipedia -- the enwik9 dataset -- into as small a file as possible. I need to compress the file below 113 MB to beat the current record.
I have written two posts describing various methods I have attempted to compress text data. I have decided to turn "Adventures with Compression" into a series in which I share notes from my learnings at each stage of my journey. I will likely make mistakes along the way. If you notice a flaw in my thinking, let me know; compression is a relatively new subject to me. I am excited to see what I learn.
In this post, I am going to talk about my adventures in chunking a document to compress it further.
-
Logikal Solutions ☛ C++ Initialization and Constructors Explanation
While many of the tools I and other developers use making medical devices require C++17 much of the code we write is C++11. Usually this is mandated by the shop. There are good reasons for sticking with C++11. It is easier to change out a library, especially if another project has already vetted that version of the library with the FDA, than it is to change the coding standard of an existing device.
Instead of a full program as many of the other Example/Explanation posts on C++, I’m going to use snippets from my RedDiamond OpenSource project. I have been loath to mentally train myself on many of the newer C++17 features because in my wold I cannot use most of them. That is beginning to change. While lambdas were and are still a damned dangerous C++11 “feature,” some of the other C++17 changes really will make code easier to maintain and safer.
-
Jussi Pakkanen ☛ C++ module tooling emulator playground
Developing tooling for C++ modules is challenging to say the least. Module implementation maturity in compilers varies, they all work slightly (well massively) differently, there are bugs and you also need a code base that uses modules. Because of these and other reasons there are maybe five people in the entire world who even think about this issue. This is bad, because it is supposed to be future foundational technology. It would benefit from more eyes.
-
Perl / Raku
-
Rakulang ☛ 2024.01 Happy (2..9).map(*³).sum
All the best wishes to everyone who likes the Raku Programming Language! For the aficionados: Happy [+] (2..9)»³. For the mathematically savvy: Happy 2³ + 3³ + 4³ + 5³ + 6³ + 7³ + 8³ + 9³ . For everybody else: Happy 2024!
-
-
Education
-
Reflections on ten years of LLVM Weekly
The basic format of LLVM Weekly is incredibly simple - highlight relevant news articles and blog posts, pick out some forum/mailing discussions (sometimes trying to summarise complex debates - but this is very challenging and time intensive), and highlight some noteworthy commits from across the project. More recently I've taken to advertising the scheduled online sync-ups and office hours for the week. Notably absent are any kind of ads or paid content. I respect that others have made successful businesses in this kind of space, but although I've always written LLVM Weekly on my own personal time I've never felt comfortable trying to monetise other people's attention or my relationship with the community in this way.
The target audience is really anyone with an interest in keeping track of LLVM development, though I don't tend to expand every acronym or give a from-basics explanation for every term, so some familiarity with the project is assumed if you want to understand every line. The newsletter is posted to LLVM's Discourse, to llvmweekly.org, and delivered direct to people's inboxes. I additionally post on Twitter and on Mastodon linking to each issue. I don't attempt to track open rates or have functioning analytics, so only have a rough idea of readership. There are ~3.5k active subscribers directly to the mailing list, ~7.5k Twitter followers, ~180 followers on Mastodon (introduced much more recently), and an unknown number of people reading via llvmweekly.org or RSS. I'm pretty confident that I'm not just shouting in the void at least.
-