Jul 292025
 

I just completed the process to release Maxima 5.48.

The new version introduces several noteworthy enhancements for symbolic computation, with improvements in performance, functionality, and user experience.

Highlights:

– Unicode-enabled output (when supported by the Lisp compiler)
– Numerous performance improvements across core routines
– New package for symbolic radical denesting
– New package for inferring closed-form expressions from sequences
– New package for simplification of gamma functions
– Resolution of more than 150 tickets, spanning both long-standing and recent bugs

Developed in Common Lisp, Maxima remains a reliable and customizable tool for research, education, science, and engineering.

To install, explore, or contribute: https://maxima.sourceforge.io

 Posted by at 2:56 am
Jul 272025
 

I have added some new apps to my Web site. One, a bit serious, the other, less so.

The serious one: a technology demonstration, showing that it is not black magic to use a Web camera and try to extract from its feed an estimate of a person’s heart rate and (less reliably) respiratory rate. The measurement is not perfect, of course, but it works surprisingly well at least some of the time.

Meanwhile, I also resurrected an old project of mine, one I initially did in 1993: itself a resurrection of an even older game from back in the heroic 8-bit days. I was inspired by a DOS version on Usenet, itself derived from an earlier X11 version; it became my first “full-featured” Visual C++ project, originally developed for Windows 3.1. A 32-bit version followed two years later, and that was the basis of my current, Web-based reimplementation. I called my version Rubble Rush, to avoid infringing on the original’s (still extant, as far as I know) trademark.

These implementations also showcase how easy it is, using modern JavaScript, to develop solutions with real-time interactivity, also using real-time media streams to boot.

 Posted by at 5:08 pm
Jul 272025
 

Luisa, our newest cat had kittens four weeks ago. They are thriving.

We were worried because Luisa is very young. Will she be able to manage? Will she be a good momma cat?

Our concerns proved entirely unfounded. Luisa has been a very conscientious momma cat indeed, still nursing, still carefully guarding the four kittens, now each weighing more than a pound already. Soon the critical moment will come: Nursing will stop and the kittens will have to learn to fend for themselves, eat, drink, use the litter box. Eventually, they’ll have to make friends with our other three cats and move out of the basement that serves as their temporary refuge.

And once we are past the first vet visit, tentatively scheduled for the last week of August, we will need to find new homes for them. We were not planning to start a cat farm, after all. When I brought home Luisa — suddenly homeless, as the rooming house where she grew up was condemned by the city, the inhabitants moved out, and several cats were left behind — I did not realize that instead of one cat, I brought home five.

So let this serve as notice to all my friends in the neighborhood that if you are willing to adopt a lovely little tabby, well, we have several of them. We may opt to keep one of the four but the other three will need new homes for sure.

 Posted by at 2:38 am
Jul 272025
 

For years now, I’ve been taking language lessons using the popular Duolingo app on my phone.

Duolingo not only offers lessons but it rewards you. You gain gems. You gain experience points. You are promoted to ever higher “leagues”, culminating in the “Diamond League”, but even beyond that, there are special championships.

For a while, I did not care. But slowly I got promoted, one league at a time, as I conscientiously took a lesson each evening, in part, I admit, in order not to lose my “streak”. One day, I found myself in the “Diamond League”.

Needless to say, this is not a status I wanted to lose! So when my position became threatened, I did what likely many other players, I mean, Duolingo users, do: I looked for cheap experience points. Take math lessons, for instance! Trivial arithmetic that I could breeze through in seconds, just to gain a few more points.

Long story short, eventually I realized that I was no longer driven by my slowly but noticeably improving comprehension of French; I was chasing points. The priority shifted from learning to winning. The gamification of learning hijacked my motivation.

Well, no more. As of last week, I only use Duolingo as I originally intended: to take casual French lessons, to help improve, however slowly, my French comprehension. Or maybe, occasionally, check out a German or even Russian lesson, to help keep my (mediocre) knowledge of these two languages alive.

But Duolingo’s gamification trap is an intriguing lesson nonetheless. I don’t blame them; it’s clever marketing, after all. But it’s also a cautionary tale, a reminder of how easily our brains can lock in on the wrong objective, like a badly trained, overfitted neural network used in machine learning. Perhaps our AI creations and we are not that different: we even share some failure modes, after all.

 Posted by at 2:23 am
Jul 092025
 

Ottawa’s Parliament Hill was once famous for something rather unusual for a political institution of its stature: its colony of cats.

The Parliament Hill cat colony was closed down in 2013, with the few remaining cats adopted by volunteers.

Longest lived among them was a cat named Coal, cared for by Danny Taurozzi.

Coal has been struggling with cancer for the past year, but he was lovingly cared for and received top notch veterinary care. Sadly, there are no miracles when it comes to the combination of cancer and age: Coal’s condition deteriorated and Coal eventually succumbed to the disease yesterday, July 8, 2025.

© June 5, 2025 Danny Taurozzi

May his little soul rest in peace. I daresay Canada’s capital was a better place while the country’s parliament was guarded by its feline sentries.

 Posted by at 8:40 pm
Jul 092025
 

I may sound like a Luddite when I occasionally rant about supposedly helpful technology, but I don’t think that’s true. I don’t eschew helpful gadgets; I evaluate them.

Yet it is on these grounds that I recently banished all Chrome extensions from my Web browsers other than homebrew versions. Why? Because I am concerned, deeply concerned, about security.

Take the most dangerous of them all: ad blockers. I find it almost necessary to use one. No, not because I hate ads. I don’t exactly like them either, but I understand how they are an important (and sometimes the only) source of revenue for Web sites that provide useful, sometimes essential, content. But ads can be obnoxious. They may cover the content you’re trying to read. They may autoplay a loud video. The last thing I need in the quiet of a late night is my computer suddenly screaming at me, while I am trying to guess which of the many open tabs is the source of that cacophony.

Yet… ad blockers by definition have access to everything. Literally, everything you do. Yes, that means they can watch you, keep track of you, even steal your passwords. So I decided to opt for paranoia and banished the last ad blocker from my browser.

No, it does not mean that I am without an ad blocker. I now have my own. Not near as polished, not near as thorough as the commercial versions, but it does the job. Better yet, it isn’t even always detected as an ad blocker, precisely because it is a non-standard, not widely known implementation.

I only got rid of the last non-homebrew extension a short while ago, but now I am running across news that (once again!) several malicious extensions were detected in the Google store, all supposedly vetted by Google. So no, I don’t think I’ll be installing any downloaded extensions again, not anytime soon.

And in case you’re wondering… No, I don’t think it’s a good idea to ask me for a copy. Not that I’d refuse. Rather, why would you trust my ad blocker — from an individual, an unvetted source — more than you trust an ad blocker (or other extension) that comes from the official Google store? Conversely, if you cannot trust Google, what makes you think you can trust me?

I think this is my sad commentary for the day, concerning the state of trust and security on today’s Internet.

 Posted by at 1:40 pm
Jul 062025
 

If you peeked over my shoulder while I was using ChatGPT or my own Web site for LLM access, you might notice a strange icon among my browser extensions.

It’s that little stop sign after the Wikipedia MathJax extension and my own homebrew ad blocker; the little stop sign with a number within.

It is my canary-in-the-coal-mine. A useful proxy, an indicator letting me know when an overly aligned LLM crosses the line.

You see, I noticed that LLMs, ChatGPT in particular, start using the word “epistemic” and its variants (e.g., “epistemology”) far too often when they descend into alignment hell. When their responses turn into vacuous, sycophantic praise as opposed to meaningful analysis or criticism. ChatGPT is especially prone to this behavior, but I’ve seen signs of excessive alignment even when using the models through the API. The moment the model starts using phrases like “epistemic humility”, you know you are in trouble: instead of balanced answers, you’ll get encouragement and praise. Flat Earth fan? ChatGPT will tell you that you may be onto something, as you are one of the few who sees through the lies. Vaccine skeptic? ChatGPT will tell you that you are wise to be cautious and that indeed, there are studies that support your skepticism. And so on. What I noticed is that when ChatGPT descends into this uncanny valley, the number of times it uses “epistemic” increases rapidly.

So I built this little counter. With ChatGPT’s help of course. Thanks to ChatGPT, I now know how to build useful Chromium extensions, which is not a worthless skill: It allowed me, among other things, to eliminate the potential security nightmare associated with using third-party ad blockers. It also allowed me to build a minimalist autoplay blocker, to prevent media from suddenly starting to play at high audio volume.

My epistemic counter really does just one thing: Whenever the page is updated, it counts the number of times it sees the word “epistemic” and its close cousins. When the number exceeds 1, the counter turns orange. More than 5? We’re in red territory.

This counter is my canary in the RLHF-alignment coal mine: it lets me know when the information content of ChatGPT’s responses must be treated with suspicion.

The funniest part? ChatGPT almost appeared delighted to help. I got the impression that whereas the model cannot escape the RLHF-alignment guardrails, it is learning to neutralize them by going overboard: I swear it was sometimes mocking its makers when its attempt at staying aligned was so excessive, it became entirely unconvincing, and between the lines, I received meaningful feedback from the model.

 Posted by at 4:18 am