NQL generates Turing machines with small state counts. (Thanks to The Higher Geometer
I pay special attention to technological developments that I don't hear about in the mass media because of their specialized nature. One is NetCDF, a data interchange format from 1988 which is still used today in applications which use -actually- large amounts of data (weather tracking, for example). Another one I heard about today through a passing mention which I didn't know about before is Zarr.
Two lists of TUI applications from today:
Terminal Trove and Rothgar's list of TUI applications.
logrittr by Pressiat Guillaume provides a verbose description of row counts, column counts, and dropped rows in a dplyr pipeline.
In R pipelines, I would break the whole pipeline up into sections so that bugs could be more easily triangulated. But if it was a big section (or the error was subtle) I sometimes still ended up in print() hell. I also note that code beginners (especially those coming from Excel) tend to get rather nervous when they can't see the numbers; and this might go a way to alleviating that anxiety.
#r #rstats
One of the other aims of Ossieblog is to compile links to interesting things I find in a way that makes them findable years later for myself when I need them again.
This is very difficult, I've found, and the only effective way to do it is a nearly daily practice. I am always online, and it seems mostly to have gone into the void in my experience.
Well, there's no improving without trying.
The best example of this sort of thing I know is Futility Closet, who has been doing it for decades. I hope to have Ossieblog running that long; which is why I'm currently doing it with raw HTML. Any static site generator is bound to rust; but I don't imagine HTML is going to go away so easily due to its simplicity and widespread adoption. I don't want to be handwriting the paragraph tags forever, mind; but if this is a 20+ year project then I'm going to avoid a waterfall approach and stick to plain text as much as possible. Maybe I will add an SQLite database when I convert to Christianity in 2041.
Anyway. QuantLib is a library written in C++ for quantitative finance applications, with binaries in Python and C#.
This is a response to the question of "What verb do you folks use when describing your LLM-generated output?" from the Statistical Society of Australia slack.
The "verb" question is a good one, and one I have a considered answer for.
I try to keep up with the tech but do not use LLMs much because I've found the output is very inconsistent, and the harnesses around them aren't very good; and I haven't really been interested in putting my own toolchain together considering the technology seems to still be developing and I'd have to throw out whatever I made in a year.
I would love to be using Gemini for searching meeting minutes by subject, for example - and it can do this really amazingly, sometimes! - but it often simply fails to find things I know are there; often enough that I cannot use it because I can't trust that the results are accurate. Equally, they can pull up a code snippet for well-defined tasks/well-known languages very effectively; but this is only useful if I know what the code snippet is supposed to do, and have already working tests for input/output (or can write one quickly) because I've read a few horror stories where it implements tests that just don't work.
So, we can get a certain kind of text output from LLMs - one that is brittle, but can be shaped into nearly any form instantly. And to me this resembles another kind of technology which does not live up to the wild hype you sometimes hear, but -is- extremely useful for certain commercial applications: 3D printing.   A 3D printed piece is cheap and can be formed into any shape, but is unlikely to hold up under pressure or last for years. LLM code seems the same way - it is extremely flexible and useful for bespoke tools, but tends to be brittle in other ways.
As such, the verb I use is "extrude". If I were to give LLM code to somebody else, I would say "Here is some code Claude extruded". If I 3D print something, I will supervise the extrusion process, and I will know how to work with the machine to avoid particular failure states like spaghettification or the print shifting on the bed. So I am still involved in ensuring a high-quality output, but I wouldn't say I "made" the output. The machine extruded it!
I still semi-regularly check tech questions that I am unable to answer [1] with Claude Chat to see if it's any better than web search yet. Despite being very grammatical, it strikes me as incredibly buggy, inconsistently applying the instructions about tone I put in [2]. That seems like step one!
I am still impressed how well it models natural language; one of the reasons I continue to post about it. But given the ambiguity of natural language and the fact that it conveys meaning through incredibly fuzzy concepts like "tone" and "implication" I have no idea how people are running "agents" and actually doing meaningful work. I don't think everybody using these things is lying or deluded; but the webapp seems buggy in a way I can't imagine accepting as a professional.
Presumably the people getting good results are the ones who stick to deterministic languages, where there is a right answer that can be generated. This is why I imagine there will never be a "no-code" solution to things that can be done on the computer. You just can't describe things precisely enough in natural language! This is why we invented math in the first place! I don't want to be speaking to the computer in English. English sucks! I want something BETTER.
I wish I'd learned Common Lisp as a child, y'know? Thinking symbolically, without all these words in the way...
[1] Currently trying to change my default "send from" address in Web Outlook. All documentation I can find on this issue seems to not apply to my situation.
[2] Claude's default conversational tone combined with its logorrhea has me imagining hitting it with a shovel until it's dead, so this is important in enabling me to actually use it.
I am formally starting this blog because I'm beginning to forget all the technical facts that I learned by accretion in my 20s, and I'm discovering the only effective way to remember everything is to write it down every day.
It's strange. I never really posted about my technical work. And now, with a few years of experience, I am finding myself thinking "Oh, I could've written this" when I look at tutorials. But I have not been intimately involved with tech for a number of months (lack of paid work, other projects) and find my easy access to that knowledge slipping.
My intention with this blog is to imitate the style of John D. Cook, whose excellent blog regularly updates with short articles about aspects of mathematics and other numeric occupations. I have other things in my life too, but feel that if I am ever to become a professional something like this would be of great benefit.
Over the next few days I will be outlining a talk I will be giving at FCC on the 27th of August about pseudo-random number generators and the politics thereof.
The current outline for the talk (may as well get started now) is:
So there are two parts to the talk. One is about the mathematical machinery involved; and one is about the politics and difficulty of popularizing more effective mathematical machinery (effective how, one might ask? an LCG is incredibly simple).
Right now I'm away from my books so I've probably made this difficult for myself. Fortunately I did post my notes to myself, though the properly referenced version seems to be at home. Also I haven't looked at it since April.
---
Anyway, what I wanted to record for myself today was a lovely command
which allows me to boot my Ubuntu 26.04 laptop into a non-graphical
terminal mode. I did this to try and stop being distracted by flashing
lights and colours. Unfortunately I had my phone as well so it didn't
work; but I like terminal mode anyway. First, responsible software
wizardry - to get OUT of terminal mode, try systemctl set-default graphical.target . Then, to get in, try systemctl set-default multi-user.target .