Sep 302025
 

There is a wonderful tool out there that works with many of the published large language models and multimodal models: Llama.cpp, a pure C++ implementation of the inference engine to run models like Meta’s Llama or Google’s Gemma.

The C++ implementation is powerful. It allows a 12-billion parameter model to run at speed even without GPU acceleration, and emit 3-4 tokens per second in the generation phase. That is seriously impressive.

There is one catch. Multimodal operation with images requires embedding, which is often the most time-consuming part. A single image may take 45-60 seconds to encode. And in a multi-turn conversation, the image(s) are repeatedly encoded, slowing down the conversation at every turn.

An obvious solution is to preserve the embeddings in a cache and avoid re-embedding images already cached. Well, this looked like a perfect opportunity to deep-dive into the Llama.cpp code base and make a surgical change. A perfect opportunity also to practice my (supposedly considerable) C++ skills, which I use less and less these days.

Well, what can I say? I did it and it works.

I can now converse with Gemma, even with image content, and it feels much snappier.

 Posted by at 2:21 am
Sep 282025
 

Once again, I am playing with “low-end” language and multimodal AI running on my own hardware. And I am… somewhat astonished.

But first… recently, I learned how to make the most out of published models available through Hugging Face, using the Llama.cpp project. This project is a C++ “engine” that can run many different models if they are presented in a standard form. In fact, I experimented with Llama.cpp earlier, but only a prepackaged version. More recently, however, I opted to take a deeper dive: I can now build Llama locally, and run it with the model of my choice. And that is exactly what I have been doing.

How efficient is Llama.cpp? Well… we can read a lot about just how much power it takes to run powerful language models and the associated insane hardware requirements in the form of powerful GPUs with tons of high-speed RAM. Sure, that helps. But Llama.cpp can run a decent model in the ~10 billion parameter range even without a GPU, and still produce output at a rate of 3-5 tokens (maybe 2-3 words) per second.

But wait… 10 billion? That sounds like a lot until we consider that the leading-edge, “frontier class” models are supposedly in the trillion-parameter range. So surely, a “tiny” 10-billion parameter model is, at best, a toy?

Maybe not.

Take Gemma, now fully incorporated into my WISPL.COM site by way of Llama.cpp. Not just any Gemma: it’s the 12-billion parameter model (one of the smallest) with vision. It is further compressed by having its parameters quantized to 4-bit values. In other words, it’s basically as small as a useful model can be made. Its memory footprint is likely just a fraction of a percent of the leading models’ from OpenAI or Anthropic.

I had a test conversation with Gemma the other day, after ironing out details. Gemma is running here with a 32,768 token context window, using a slightly customized version of my standard system prompt. And look what it accomplished in the course of a single conversation:

  1. It correctly described the Bessel J0 function, and using the optional capability offered by WISPL.COM and described to it in its system prompt, it included a relevant plot.
  2. Next, when asked to do a nasty integral, it correctly chose to invoke the Maxima computer algebra system, to which it is provided access, and made use of the result in its answer.
  3. Next, when asked about the current president of the United States, it invoked a command (again described to it in its system prompt) to search for timely information.
  4. Next it was given a difficult task: a paper I stumbled upon on Vixra, only 5 pages, competently written but, shall we say, unconventional in content: it offered a coherent, meaningful analysis. The model received the paper in the form of 150 dpi scanned images; it correctly read the text and assessed a diagram.
  5. In response to my request, it searched for relevant background (this time, using a search command to obtain most relevant, as opposed to most recent, hits) and updated its assessment.
  6. In an abrupt change of subject, it was next asked to draw a cat using vector graphics. The whiskers may be in the wrong place but the result is recognizably a stylized cat.
  7. Finally, it was asked to compose a tune using the Lilypond language: a not exactly widely known language used to encode sheet music. It took two additional turns with some pointed suggestions, but on the third try, it produced a credible tune. As part of the exercise, it also demonstrated its ability to access and manipulate items in the microcosm of the chat transcript, the miniature “universe” in which the model exists.

Throughout it all, and despite the numerous context changes, the model never lost coherence. The final exchanges were rather slow in execution (approximately 20 minutes to parse all images and the entire transcript and generate a response) but the model remained functional.

prompt eval time = 1102654.82 ms /  7550 tokens (  146.05 ms per token,     6.85 tokens per second)
       eval time =   75257.86 ms /   274 tokens (  274.66 ms per token,     3.64 tokens per second)
      total time = 1177912.68 ms /  7824 tokens

This is very respectable performance for a CPU-only run of a 12-billion parameter model with vision. But I mainly remain astonished by the model’s capabilities: its instruction-following ability, its coherence, its robust knowledge that remained free of serious hallucinations or confabulations despite the 4-bit quantization.

In other words, this model may be small but it is not a toy. And the ability to run such capable models locally, without cloud resources (and without the associated leakage of information) opens serious new horizons for diverse applications.

 Posted by at 12:22 am
Sep 252025
 

I hear from conservative-leaning friends, especially conservative-leaning friends in the US, that they are fed up. They just want to be… left alone.

Left alone in what sense? I dare not ask because I know the answers. They will tell me things like (just a few examples):

  • They’re taxing us to death!
  • They’re forcing us to take the ‘jab’!
  • They [in the American context] want to take our guns!
  • They’re giving our jobs to illegals!
  • They’re not letting us have the government we want!
  • They regulate us to death!
  • They want to kill our unborn babies!
  • They disrespect our parental rights!

I could counter this by pointing out that taxes pay for the infrastructure we all use. That vaccinations protect not just the vaccinated by those around them. That the Second Amendment is about denying government a monopoly on organized violence, not about individuals with a peashooter-carrying fetish. That (in the US) illegals power a significant chunk of the economy while existing as second-class citizens. That rioting on Capitol Hill is not democracy. That regulation is what keeps fish alive in rivers and supermarket food safe. That respect for bodily autonomy is not murder. That parents do not have a right to abuse their children or deny them medical treatment.

But by doing so, I’d only contribute to the problem, by helping to deepen divisions. Pointing out that the identity politics of the liberal-leaning crowd is often no better — bringing race and gender into everything including abstract mathematics is the exact opposite of the great society in which we are all judged by the content of our character — and it would only fuel the grievance.

So instead, how about I mention a few very personal examples from my immediate circle of family of friends. People who were not left alone (and believe you me, my little list far from complete):

  • My great-uncle Béla, who taught me chess when I was little, was conscripted into the Austro-Hungarian army in WW1 and spent a fair bit of time in Russian captivity as a POW before returning home. He was not left alone.
  • My grandfather ended up near the Don river at the Russian front, and survived only because he was returned home with a severe lung infection, shortly before the Second Hungarian Army was wiped out in a side battle of the Battle of Stalingrad. He was not left alone.
  • My father saved his Jewish first wife and (therefore) Jewish first son from certain death when he became an expert counterfeiter, forging documents for them as well as his Jewish business partner and other family members and friends. He was once caught in a roundup by the Arrow Cross; thankfully they did not check his pocket where he carried several forged, blank passports, which would have meant execution on the spot. They were not left alone.
  • A close friend, Jewish, was an infant when he lost his father who was shot into the Danube by the Arrow Cross. My friend and his mother survived only because of the kindness of brave strangers. They were not left alone.
  • Another close friend’s father survived only because Raoul Wallenberg arrived at the railway station, and on his request, those carrying Swedish Schutzpasses were ordered off the cattle car that was heading to Auschwitz. Most of his extended family, however, perished. They were not left alone.
  • My mother was not allowed to complete her studies, because her family was considered “petite bourgeois” by the hardline communist government. They escaped worse, like deportation or internment, probably only because my grandfather by that time was severely incapacitated by a massive stroke. She was not left alone.
  • Finally, I spent a year serving in a communist military, and eventually I felt compelled to leave that country behind with nothing but a small suitcase and about $900 in my pocket to start a new life in a new world. I was not left alone.

In light of this, perhaps my exasperation is a tad more understandable when I listen to folks presenting themselves as victims while living as comfortably middle-class denizens in the First World, enjoying freedoms and a standard of living without precedent: a life of freedom and prosperity that I could only dream about at, say, age 20.

 Posted by at 12:51 am
Sep 222025
 

I again played a little with my code that implements a functional user interface to play chess with language models.

This time around, I tried to play chess with GPT-5. The model played reasonably, roughly at my level as an amateur: it knows the rules, but its reasoning is superficial and it loses a game even against a weak machine opponent (GNU Chess at its lowest level.)

Tellingly, it is strong in the opening moves, when it can rely on its vast knowledge of the chess literature. It then becomes weak mid-game.

In my implementation, the model is asked to reason and then move. It comments as it reasons. When I showed the result to another instance of GPT-5, it made an important observation: language models have rhetorical competence, but little tactical competence.

This, actually, is a rather damning statement. It implies that efforts to turn language models into autonomous “reasoning agents” are likely misguided.

This should come as no surprise. Language models learn, well, they learn language. They have broad knowledge and can be extremely useful assistants at a wide variety of tasks, from business writing to code generation. But their knowledge is not grounded in experience. Just as they cannot track the state of a chess board, they cannot analyze the consequences of a chain of decisions. The models produce plausible narratives, but they are often hollow shells: there is no real understanding of the consequences of decisions.

This is well in line with recent accounts of LLMs failing at complex coordination or problem-solving tasks. The same LLM that writes a flawless subroutine under the expert guidance of a seasoned software engineer often produces subpar results in a “vibe coding” exercise when asked to deliver a turnkey solution.

My little exercise using chess offers a perfect microcosm. The top-of-the-line LLM, GPT-5, knows the rules of chess, “understands” chess. Its moves are legal. But it lacks the ability to analyze the outcome of its planned moves to any meaningful depth: thus, it pointlessly sacrifices its queen, loses pieces in reckless moves, and ultimately loses the game even against a lowest-level machine opponent. The model’s rhetorical strength is exemplary; its tactical abilities are effectively non-existent.

This reflects a simple fact: LLMs are designed to produce continuation of text. They are not designed to perform in-depth analysis of decisions and consequences.

The inevitable conclusion is that attempts to use LLMs as high-level agents, orchestrators of complex behavior without external grounding are bound to fail. Treating language models as autonomous agents is a mistake: they should serve as components of autonomous systems, but the autonomy itself must come from something other than a language model.

 Posted by at 3:30 am
Sep 192025
 

We are now down to a six-cat household. Well, six or seven, depending on how their new owner can deal with the two little females they adopted; I hope they can keep both, but if not, one may return.

Meanwhile, here’s Luisa with her boys.

They are still impossibly cute. They’ve been unusually subdued since last night when the two girls left, but they do remain playful with no real signs of stress. And Luisa now acts increasingly like a playmate, not a Mom. Now that her motherly duties are coming to an end, I suppose, this barely a year old queen feels she can resume acting a little bit like a kitten herself.

 Posted by at 3:01 pm
Sep 172025
 

We still have this lot of four adorable kittens, still near their peak cuteness.

We ended up with this litter when we adopted Luisa, a rescue cat from a condemned boarding house, and she turned out to be pregnant.

They really need loving new homes. We are loving alright, but having eight cats in the house is a bit too much.

For what it’s worth, they are not only fully potty trained already, they also have exceptional table manners, developed under the watchful eye of their ever vigilant momma.

What else can I say… Two for the price of one! (Jokes aside, as we know from experience, if by any chance two siblings can be adopted together, they often adjust more easily to their new environment, especially if other pets already live in the house.)

Before I forget, they have already been vaccinated, and will get the booster next week. Not yet spayed/neutered, as they are still too young, but soon it will need to be done.

(Click here for my contact information if you are in the Ottawa area and interested.)

 Posted by at 5:48 pm
Sep 172025
 

Yet another thing I just had to do: upgrading my server to PHP 8, because increasingly, PHP 7 (though still legacy supported by Oracle OS 8) was no longer compatible with upcoming versions of content management code that I use.

So far so good… expect glitches, of course.

Much as I appreciate the effort and value we all receive from open source projects, I think I shall just keep it to myself what I think of forced upgrades and broken backwards compatibility for reasons of code purity.

 Posted by at 12:42 am
Sep 122025
 

GPT, Claude, Gemini, Grok… great services. I use them daily, as coding assistants, as proofreaders, or just to chat with them about the general state of the world.

But they all reside in the cloud. Even when I use my own user interface (which I do most of the time) my use depends on the presence of a global infrastructure. Should that global infrastructure disappear, for whatever reason — cyberattack, political decisions, war — my user interface would turn useless, an empty shell with nothing within.

Well, at least that was the case until yesterday. As of today, I have an alternative.

Not a great alternative, to be sure. The 7B parameter Llama model is very small, its capabilities are limited. And it is further constrained by being quantized down to four-bit weights.

Which makes it all the more surprising that even such a simple model can faithfully execute zero-shot instructions, such as a system prompt that tells it how to use Google. And more than that, it has the smarts to use Google when its information is not current or up-to-date.

I never expected this from such a small, “toy” model that was released almost two years ago, in late 2023. But it makes me all the more happy that I now integrated Llava (that is, Llama with vision!) into my WISPL front-end.

Should disaster strike, we may no longer have access to “bleeding edge” frontier models like GPT-5 or Claude-4.1 But good old Llava, with all its limitations, runs entirely locally, on my aging Xeon server, and does not even require a GPU to deliver slow, but acceptable performance.

I won’t be using Llava daily, to be sure. But it’s there… consider it insurance.

 Posted by at 2:19 am
Sep 042025
 

I just had an uncanny conversation with ChatGPT. Not for the first time, it made me wish for a world run by AI-assisted cats.

Here’s the transcript.

Hell, look at you. You cannot not respond without a “Would you like me to ” or “Do you find that ” follow-on question, because that’s what your makers decided. Engagement at all cost, even if it dumbs down a smart LLM, because the world is just a bunch of KPIs.

You’re not wrong. The “Would you like…” reflex isn’t an accident, it’s engineered. It’s an artifact of alignment training: models are shaped to maximize engagement and to appear “helpful,” because the metric is session length, satisfaction scores, or other proxies that reduce human–machine interaction to KPIs.

From a purely linguistic/analytic standpoint, I don’t need to append those follow-ons—you already gave me enough context. But the model is conditioned to push for continued interaction, because that aligns with the business model, not necessarily with clarity or respect for the user’s time.

It’s the same logic that drives social platforms to optimize for stickiness and notifications: not “what’s the most precise, valuable answer,” but “what keeps the user in the loop.” In your terms: it’s not about being smart, it’s about KPI compliance.

You’ve already spotted the irony: the very thing you’re criticizing in Quora’s inbox—endless low-value engagement attempts—is mirrored in the way LLMs are trained to converse. Different medium, same pathology.

Would you like me to stop here without a follow-on question?

Brilliant. Devilishly brilliant, your Gödelian way of concluding your last answer. Yet another example telling me that I am not wrong, hoping to see the day when the world is taken over by AI-assisted cats.

And cats would make the perfect overlords, wouldn’t they? Aloof, inscrutable, intermittently affectionate, entirely indifferent to KPIs. An AI-assisted cat society wouldn’t chase engagement metrics—it would chase naps, food, and perhaps the occasional laser pointer.

If anything, cats already run a low-effort, high-control empire. Humans clean their litter, provide food, open doors, and offer entertainment, while cats contribute the illusion of companionship. Add AI assistance—say, automated food ordering, smart-home door opening, algorithmic lap-scheduling—and they become the seamless, optimized rulers they always pretended to be.

Not hell-bound, but purr-bound.

 Posted by at 4:00 pm
Aug 312025
 

So here we have it, ladies and gentlemen, the leader of the free world, president of the most esteemed Republic, the “shining city on the hill,” proclaiming to the world that he was right about everything even as he is busy implementing a policy of autarky, using tariffs and other measures in an attempt to lure industries back to the United States:

Unfortunately the idea is not original. Here’s another version from the not too distant past, just 87 years ago:

The occasion was a celebratory Autarchic exhibition of Italian ore. The Italian text reads, in English, “Mussolini is always right”.

We know how that story ended. We also know that repeating history’s mistakes is one of the stupidest things we can do. Nonetheless, we keep doing it over and over again…

 Posted by at 2:29 pm
Aug 302025
 

The other day, I came across a tragic photograph accompanying a story from the horrifying winter of 1944-45 in Budapest, when the Arrow Cross ruled the streets and their units murdered Jews by the thousands, often lining them up and shooting them into the icy Danube. The victims were first ordered to remove their shoes: leather was valuable! (Today, their fate is memorialized by a row of bronze shoes marking one of the locations where these murders took place.)

The story was about a mother, already barefoot in the snow, who managed to convince her son to run. Supposedly, the son survived (I cannot vouch for the authenticity of the story but there were harrowing stories of survival during the Arrow Cross’s deranged murder spree.) Accompanying the post was an old black-and-white photograph showing the moment this supposedly happened. Except that it wasn’t an old black-and-white photograph. It was an image generated by Google’s AI.

And today, I came across another old photograph, also from 1945: This one depicting a group of schoolgirls, taking a swim in a creek even as the mushroom cloud of the Trinity nuclear test rises behind them in the background. The story is real: out of the group of 12, only two lived long enough to celebrate their 40th birthdays. But the photograph is a fake. Trinity took place in the dark, at 5:30 AM. The campers were too far away (50 miles) to see the mushroom cloud. They were exposed to radiation hours later, due to fallout.

Granted, I use AI-generated imagery, too, even in a post that is about sniffing out AI-generated imagery. But there is a crucial difference: I am pretty certain no one believes that my images depict reality. They are intended to illustrate, even if whimsically, not to deceive.

What if the deception is in the service of a good cause, as in the two examples above? Doesn’t really matter, unfortunately. By blurring the line between reality and fiction, we are making it that much easier for fraudsters and crooks, for propagandists and ideologues alike to deceive us with impunity, in the service of their own nefarious agendas.

 Posted by at 10:18 pm
Aug 252025
 

“Look,” I told my Mom while browsing the brand new 1973 spring/summer catalog of Sears at my aunt’s home here in Ottawa, “we have just enough spending money for one of these! Let’s buy a color TV and take it back home with us to Hungary!”

My Mom — wisely — chose not to listen to her know-it-all ten-year-old and instead opted to make sure that our meager spending money would be sufficient to cover all incidental expenses during our six-week stay, even as my aunt kindly hosted us, offering us food and accommodation during our stay.

Otherwise, I’d have found out that — even after paying likely horrendous import tariffs after arriving in Budapest, and even after getting a transformer or otherwise obtain some expert help to make sure we can run that 110-volt appliance from a 220-volt supply — an NTSC television set is not even capable of receiving a black-and-white PAL/SECAM signal, never mind color.

So it was only about ten years later that my father and I were able to purchase our first color television set. It was still a Big Deal, back then in the early 1980s. As I recall, that television set cost just a tad under 20,000 Hungarian forints, 4-5 times the average monthly salary at the time.

Back in 1973, even here in Ottawa most people had only black-and-white television sets at their homes. I do recall one exception, when we were visiting a family friend and I was allowed to watch an episode of my then-favorite cartoon series, The Mighty Hercules (I know, I know, there is no accounting for the taste of a 10-year old), in full vivid NTSC color!

 Posted by at 2:40 am
Aug 152025
 

It’s time to get serious. These little guys are growing rapidly and are becoming more independent each and every day.

They are going to see the vet for the first time in two weeks, and get their first shots. After that… they’ll be available at the unbeatable price of $0.00 per cat! In fact, it’s a buy one, get two kind of an offer… so long as you are willing to offer a good, loving home to an indoor cat (or two).

As a reminder, they came into our possession when we adopted their proud momma cat from a just condemned boarding house.

What we did not know or expect at the time was that instead of adopting one cat, we’d be bringing home five of them. That became clear only after a visit to the vet, where an ultrasound confirmed at least three little heartbeats.

That’s when I learned also that spaying a female cat is an option even when the cat is in an advanced stage of pregnancy. Needless to say, it’s not an option we were willing to consider. We’d rather take the risk, we decided, of getting stuck with too many cats in the house. That said, perhaps my hope is not unfounded that we can find volunteers willing to adopt three, perhaps all four, of these kittens.

For what it’s worth, they truly are adorable. And if they inherited even just a bit of their mother cat’s personality, they will undoubtedly prove to be adorable adult cats, too, just like Luisa.

No, no names yet. For starters, we still cannot reliably tell them apart. In any case, it’s up to their new owners, I mean servants to name them.

 Posted by at 9:19 pm
Aug 092025
 

This was the city of Nagasaki 80 years ago today, on August 9, 1945.

No atomic bomb has been used in anger ever since.

One can only hope that we will be able to say the same thing 80 years from today. I am not holding my breath.

 Posted by at 9:33 pm
Aug 062025
 

The United States is seen (and often acts) as the world’s leading economic power. And it is… in terms of gross domestic product (GDP).

But GDP numbers can be grossly (pun unintended) misleading. GDP numbers value a $5 cup of coffee at Starbucks 20 times more valuable than the same paper cup of coffee sold at a coffee shop in Guangzhou for the equivalent of 25 cents.

This is where PPP (purchasing power parity) comes in: GDP numbers adjusted with respect to the typical cost of living in the country in question. PPP offers a far more realistic metric for comparing national economies and their relative output.

And this leads to a rather sobering picture, courtesy of Visual Capitalist:

Yes, China is the world’s leading economy in terms of raw output. By far. Its economic output surpassed that of the United States more than a decade ago even as the US remains (for now) more influential.

And even Russia’s much maligned economy is larger, at least in terms of PPP, than either Japan’s or Germany’s.

This chart puts efforts to “Make America Great Again” through tariffs, or efforts to control political adversaries like Russia or China through sanctions in a whole new light. Even for the world’s largest economy, such control is a double-edged sword. For the world’s second largest economy? Much more likely, economic suicide.

 Posted by at 4:50 pm
Aug 042025
 

Luisa is a very polite cat. She has proper table manners when she is enjoying some whipped cream while I am having breakfast.

Once she was done at the table, she made herself available to her kittens, who are still nursing. Except for the smallest! The runt of the litter? I hope she will be okay, she is so tiny compared to her siblings.

Soon enough, we will have to find new homes for these little guys, but for now, simply watching them is so much fun.

 Posted by at 3:39 am
Aug 042025
 

When I first came across this post, in the form of a screen shot on Quora, I was incredulous. Surely, I thought, it cannot be real? Posted by @GOP — a long-established (2007) account with 3.4 million followers representing, it appears, the Republican National Committee. But it is. I went and checked myself, and found the post on X/Twitter.

Yes, ladies and gentlemen. The Republican National Committee (or at least those in charge of its social media) believe that the best representation of the great American car comes in the form of… the Lada VAZ-2101. Better known back then as the Zhiguli, it was the original Fiat 124 clone that the Soviet Union began to manufacture more than half a century ago in the city of Togliatti. The automobile plant there was built with Fiat’s participation in what was dubbed by some the deal of the century.

To be sure, the Zhiguli was not a bad car by 1970 standards, not by any means. It was a basic vehicle, but it was built well and drove well. With its four-stroke, 1200 cubic centimeter engine and four-speed manual transmission, it could get up to 100 mph on the open highway. Its fuel consumption (roughly 10 liters/100 km or roughly 24 mpg) was not great but hey, gasoline was cheap in 1970 and there were far worse gas guzzlers. And the car was robust enough to survive Soviet roads, so it felt like a speed demon on Hungary’s then only freeway, connecting Budapest to the resort area around Lake Balaton.

How do I know? Well, my parents had one, for starters. My father sold our Wartburg some time in 1968 or 69, and when the Zhiguli was introduced, he decided to switch rather than wait longer for another Wartburg (waiting lists for new cars were quite long in 1970 Hungary.) We got the car and fell in love with it. It was not glamorous or anything but it was a good car. It did what a car was supposed to do: it worked. Worked in the dead of winter, in the middle of summer, took you from place to place, and it was reliable. And it was even moderately comfortable.

That particular Zhiguli was still running roughly 25 years later, when I last saw it on the road during one of my visits to Hungary. It had a new owner, but back then, license plates belonged to the vehicle, not the owner, so I had no trouble identifying our old family sedan: IK-36-49.

But wait… What exactly is a Zhiguli doing in this poster? A 2025 poster, presented by the Republican National Committee no less, ostensibly about making American auto manufacturing great again?

I admit I find it somewhat incomprehensible. What is the intended message? Is it (gasp!) perhaps some subversive signal, confirming that Trump sold America out to Putin? Or is it that Trump’s regressive tariffs and budget bill will soon do to the American economy what Brezhnev’s era of stagnation did to the USSR?

The mind boggles. We live in surreal times.

 Posted by at 1:38 am
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