Cees de Groot
mastodon 4.8.0-alpha.3+glitchhttps://coalton-lang.github.io/20260424-mine/ - Mine, a new IDE for Lisp and Coalton. Probably this mostly will land in the echo chamber, but this is a great tool for getting people into Common Lisp and Coalton (so spread the word - it's now easy mode to get going! ;-)) #lisp #commonlisp #coalton
The most recognizable thing about AI generated code seems to be its commenting style: there's a dearth of fully-formed sentences and an abundance of "the next line of code is doing X".
Now, my take on LLMs generating code is that they generate the mean of all code they encountered. Just as with testing, this commenting style is indicative of just how bad human-generated code seems to be, on average.
I won't stand for this reduction of quality, but I'm sure that half the coders out there will see an improvement by using AI ;-)
I have two woodworking toolsets in my garage. The yellow-brand stuff is awesome to cut up 2x4s and shoot nails through them until you have a shed or a chicken coop or a deck or whatnot. Then, there's carefully honed chisels, vintage planes restored with love, and - a recent addition - some Japanese saws to craft small things with high precision. Nobody would debate that having different sets of tools here is somehow strange.
I also have two "software development" mindsets. There's code that is heavily utilitarian and will see a couple of users at most, sometimes just one; I stopped writing it myself, the big box store is not "Home Depot" but "Anthropic" and the result is coarse but serviceable _for this purpose_. And then there's code that sees a lot of users, has to build trust, has to work all the time, and likely has some safety and compliance requirements. The equivalent of my Japanese saws and Swedish steel chisels is the wetware in our heads. Finicky to use, maybe, but irreplaceable.
RE: @knoppix95@mastodon.social
And that's why I'm a happy GrapheneOS user. Even if it meant, for now, having to buy hardware off Google.
Just renewed my @guix@hachyderm.io Guix Foundation membership. I forgot how easy it is to transfer money in Europe: type in name and IBAN, you get an immediate verification that they match, press send, money is there (and this was between a Belgian and a French bank account). No fees, no delays, no intermediaries taking their cut, just like things should work in the 21st century.
I think that if the Canadian government is serious about growing our economy, step one is to pull the damn banking system out of the stone age. Just copy the SEPA directive with some mild search and replace and announce that it'll be law in X years. Worked in Europe...
We started using Claude code at work. In a reasonable way, I must say: let's give it a spin, see what it can do for us, treat it as a tool in the toolbox, not a developer-displacing silver bullet, etc.
Anyway, I was working on a ticket, took time to install the CLI, and then asked it to generate a test for some new code I wrote (usually I TDD, sometimes I code my way first to a solution, it depends. No silver bullets, just tools in the toolbox).
What happened next made me giggle, because the test was hilariously bad and full of all sorts of antipatterns.
What happened _next_ made me cry. I realized that Anthropic just scraped all the Elixir code it could get its hands on so the style of test its product generates reflects the general "state of the art" in the Elixir community.
Realizing that made me very sad. I guess it's time to write a blog post on proper test approaches in Elixir (too bad I cannot use Claude's code as a showcase as it is work code, it'd be a great exposition piece).
(cont)
It was fun to chat on @screwtape, thanks @kentpitman@climatejustice.social @screwlisp@gamerplus.org @ramin_hal9001@fe.disroot.org for having me. Recording on https://toobnix.org/w/9otb9JbqRUenLUjK72viwf, next week it seems I'm gonna be grilled on my book, berksoft.ca/gol.
I almost forgot. I was really busy but I promised a quick blog post on Elixir testing, so here it is. It's not polished/finished, but I promised a post, not a perfect one ;-) https://cdegroot.com/elixir/2026/03/09/elixir-testing.html - if people have opinions, i'll iterate a bit.
Anyway, your homework assignment is to (re)watch @jbrains@mastodon.social's "Integrated Tests are a Scam" talk - https://vimeo.com/80533536 (I'm linking to what I think is the original version of the talk on purpose here: this should have been common knowledge for at least this long. But there's newer vids and blog posts if you prefer). Just this - avoiding the integrated test pit - will help you drive your tests (and code) to a point very close to where you can be happy about your test suite.
AI sure is a hot topic right now, and I see a lot of people arguing about it. To a lot of people around here, I’m the “computer person” they know and I get asked a lot about AI.
I’m going to suggest a lot of things can be true at once. For instance:
- LLMs are changing how we work and will continue to do so.
- LLMs are vastly over-hyped by vested interests, and may be in a bubble.
Or how about:
- Huge investment in GenAI is having many negative consequences, ranging from environmental to causing affordability problems in many industries that use hardware (ie, everywhere)
- Useful results can be had from models that run on local hardware, even battery-powered hardware, which may have negligible harm or even some benefit
And:
- GenAI is further concentrating wealth and power in megacorps, with the effect of squeezing out the smaller players even more.
- GenAI is lowering the cost of entry for people without a lot of resources already.
I have sympathy for the naysayers; those that say it’s nothing but a stochastic parrot. But I don’t have a lot of sympathy for the naysayers that deny ever using it; you can’t form a credible argument against something without having an understanding of it informed by experience.
I also have sympathy for the cheerleaders. I have seen some impressive things from AI; for instance, a story from an engineer who has a child with a rare disease without a credible cure. The engineer did a lot of research on it, started feeding research papers into AI to analyze, and the AI started finding correlations between different areas of research that humans hadn’t yet found — leading to a positive result for the child.
To be fair, I have rarely seen an AI deliver a 100% correct answer on anything with any real level of complexity. I have seen it both waste more time than it saves, and save a ton of time.
My point here is: It is neither always fantastic nor always terrible.
Let me talk you through an example.
I am a fan of inbox zero for email. That is, the inbox should be empty. Unfortunately, mine has 8000 messages in it. According to the oldest messages in my inbox, I last had inbox zero 8 years ago. But really, only a handful are older than 2020. I guess something must have happened that year…
I’ve been chipping away at this for quite some time now. The problem is, there are certain emails in there that really do still need some action – maybe it’s photos to save off into our photo collection, for instance. But when looking at things sorted by date or thread, there are old shipping confirmations next to phishing attempts and family photos. One can’t just scan down the list.
I’ve tried all the usual tricks, most of which involve selecting groups of message that are easy to bulk erase, or at least easy to scan visually for the occasional thing worth saving. Sort by sender or subject line, for instance. Then I can, for instance, delete all the old messages from the shopping sites I commonly use all at once. But then they start using different senders and different subject lines and that doesn’t get all of them. I’ve tried keyword searches for this sort of thing too. Still, that got me down to about 8000 messages.
So I thought: why not see if an LLM could help me classify these? Maybe it could categorize them, and then I could look at emails grouped by category.
I have one machine with a discrete GPU, an Nvidia RTX 4070. It’s a desktop machine I don’t use all that often. But I set up Ollama on it, running in a Docker container. Ollama runs models locally.
I should also mention at this point that we are solar-powered, and this time of year is a time of peak production of excess solar, because it is sunny and not much heat or AC is required. So that machine is solar-powered and isn’t causing environmental harm. In any case, charging the EV uses much more power than that GPU.
I figured I would do this in two passes. First, ask the LLM to classify each message (or a sampling of them would probably work too), letting it pick its own categories for each. Then, look at the patterns that emerge and give it a single, much smaller, set of broad categories to use and rerun it over that.
Then I can easily select messages from my Maildirs by category and process them in bulk.
I used open-interpreter pointing to that GPU on my network to help me write the scripts for this. It didn’t get things right on its own; for instance, it didn’t call the Ollama API correctly, and insisted on appending “/cur” to the path to the Maildir (which was not going to fly with Python’s maildir module). It took roughly an hour to classify those 8000 messages (or, as I had it do, the first 2000 characters of them), and then the same to do it a second time. I had it output lines in the form of “filename\tcategory” and hand-wrote the shell script that processed those.
In the end, was it useful? Yes, quite. Its classifications weren’t perfect (and it didn’t even follow my prompt perfectly; sometimes it would give me a long discussion on why it picked a certain category rather than just that category, and occasionally it picked categories not on the list). But then, neither were my manual keyword searches. So far I’ve gotten rid of nearly 1000 more messages. Several categories were a “visual scan for sanity and then delete all” sort of thing.
My emails never left my network. I didn’t rely on a cloud AI to process them. I didn’t contribute to global warming (this may have even been a case of saving energy, since it no doubt will offset quite a bit of manual time that would keep screens and room lights energized and so forth). I used about as much energy as watching a movie on a TV.
Did it complete the task for me entirely autonomously? Also no. AI isn’t a mind reader and it can’t possibly evaluate exactly what my thought process would be for a given task. But it can do a decent enough job to save me some time.
Still, this didn’t require hyperscaler datacenters. AI even runs on-phone (Google Translate being one of the most useful AI-driven apps I’ve ever seen, and it can run on-device).
#AI #artificialIntelligenceOh, and congrats everybody in British Columbia for getting rid of one of the sillier modern inventions. I can only hope Ontario will be next but I'm not gonna place any bets on it.