May 062024

A couple of months ago, I came across a nice paper, by Verma and Silk (of Silk damping fame, as he’s known to cosmologists), showing what would happen if we had a chance to view the “shadow” of a supermassive black hole as it is microlensed by an intervening smaller black hole along the line-of-sight.

It occurred to me that I have the means to model this. At first I thought I’d write a short paper. But there really is nothing new that I can add to what Verma and Silk said in their paper, other than a nice animation produced by my ray tracing code.

So here it is. A brief animation of a small black hole passing in front of the famous “shadow”.

Things are not exactly to scale, of course, but for what it’s worth, this video corresponds roughly to a 10,000 solar mass black hole passing through, halfway between us and Sagittarius A*.

 Posted by at 11:59 pm
Apr 302024

It is fashionable these days to curse our city’s transit company, but here’s some praise for a change.

I wanted to thank those employees of OC Transpo that I ran into the other day who helped me recover a lost phone. Not only was the phone located and returned to us in short order, the gentlemen I met, without a fault, were exceptionally polite, helpful, and, well, just genuinely nice! What could have been an awfully frustrating experience for us turned into something that, well, made my day.

Thank you, OC Transpo.

By the way, a large-ish city’s major bus depot is a fascinating 24/7 operation.

 Posted by at 7:58 pm
Apr 262024

As of yesterday, I think we again officially qualify as a three-cat household.

Which is to say, Rigby and Raina now have moved upstairs, no longer using our basement as their “safe place”. They are still a bit apprehensive: Rigby can be petted, Raina not so much, but they made friends with Freddy, the three cats now eat together, and they found new favorite sleeping spots around the house.

They are so… elegant. Beautiful little guys. I hope they will spend many happy years with us.

 Posted by at 4:07 am
Apr 222024

Can someone explain, by any chance, why, when moments ago I logged out of the Canada Revenue Agency Web site after filing an HST return, I was greeted with a German-language message announcing that my logout was successful?

I mean, a French-language message, sure. Inuit, sure. Aber Deutsch? Ja, ich kann ein bisschen Deutsch sprechen, aber woher wissen sie das?

 Posted by at 1:48 am
Apr 082024

Hello, world, please meet Rigby and Raina.

Rigby and Raina are two cats from Arnprior, who now live in our home. They are still more than a little apprehensive, but at least they no longer feel compelled to always hide when we enter the basement, where they presently live. I hope that soon enough, they’ll be willing to venture forth and explore the house.

A house that might be full of dangerous wildlife! Like this one:

OK, don’t worry, it’s not a lion in a flimsy wooden cage. Just our cat Freddy. Nor is he in any sort of distress. He’s just looking at my wife through the kitchen patio door, meowing at her through the glass.

We have yet to see how Rigby and Raina will get along with Freddy, but we’ve been assured that they are okay with other cats and indeed, I’ve seen it at the shelter where they came from that they seemed comfortable in a room shared with several other cats.

So yes, we are again a three-cat household. Or will be, as soon as these two gray beauties find the courage to come forth and start exploring.

 Posted by at 10:41 pm
Mar 302024

Though vintage programmable calculators remain one of my oddball hobbies, it’s been a while since I last mentioned them in this blog. And it’s especially rare that I’d write about a non-programmable, perfectly ordinary, dirt cheap, dollar-store quality mass-produced Chinese scientific (“56-function”, standard chip) calculator, but this one is different.

Why? Because I fixed the darn thing, that’s why.

Why am I so proud of my accomplishment, fixing something that most folks would have thrown away as a worthless, broken piece of junk? There is a very specific reason.

The bane of cheap calculators for the past 20-odd years has been the connection between the calculator’s main circuit board and its liquid crystal display. The liquid crystal display contains transparent connections, but these, rather obviously (it’s glass!) cannot be soldered. So how do you connect the display and the circuit that drives the display? In the earliest LCD devices, this was accomplished by a strange, rubbery part, a conductive silicone “zebra strip” that made an electrical connection between a series of connectors on the circuit board and the corresponding leads on the display glass. The device worked if this zebra strip was properly sandwiched between the display and the circuit board and held together tightly, which required an appropriate mechanical construction.

More recently, these have been replaced by, ahem, I think they’re usually referred to as “zebra stripes” or maybe “zebra lines”: essentially, paper-thin sheets of plastic with parallel conducting lines. A short strip, or stripe, attaches on one end to connections on the circuit board, and on the other end, to the LCD display. The attachment is adhesive (which may be heat activated) and once attached, there’s no need for mechanical pressure to hold the parts together. This, I presume, makes the design less constrained, and reduces manufacturing costs.

The problem is that these zebra stripes can become detached. This leads to a failing display: Digits vanish, segments vanish, crosstalk appears, the display becomes garbled and unreadable.

In some cases, this can be reversed by (very) carefully pressing down the stripe on both ends, with a hard but not too sharp tool as you wish to apply pressure to reattach the adhesive, not destroy the plastic. Sometimes, a heated tool works better. But the result is uncertain: Sometimes it works, sometimes it doesn’t, sometimes it fails a few hours, days, weeks later.

If the zebra stripe is mostly or completely detached, or if it is damaged, the device is dead. Or so I thought… until now.

When this nameless “scientific calculator” came into my possession (found in a small bag of goodies that we bought at a thrift store) it indeed seemed hopeless. But I decided that it can serve as a perfect test case. For the first time ever, I endeavored to purchase a small piece of replacement zebra stripes of the right size from AliExpress. I had no idea how to use it properly, or indeed if it would work or not, but I figured it’s worth trying.

My first few attempts were disastrous. Applying too much heat destroyed the zebra stripe. Glue and molten plastic residue contaminated both the circuit board and the LCD display. Scraping it off was difficult and I was probably one bad move away from cracking the display.

But I didn’t. And on the fourth try, the display more or less came to life! I was ready celebrate success even though the display was not quite flawless, as it was already a far better result than I had hopes for. But at this point I noticed that although the display was now working, the calculator itself wasn’t: it no longer responded to any of its keys. I went through several iterations trying to troubleshoot this new problem before I noticed something: The zebra stripe I used was a tad longer than it should have been, and it made contact with another lead on the calculator’s circuit board, effectively short-circuiting its keyboard.

Once I corrected that, the calculator not only came back to life, even its display was now working like a charm. I feel like celebrating.

I don’t know how long it sill last: Cheap hardware is still cheap hardware. But now I know that repairing broken zebra stripes is possible.

So yes, this is how I am having fun during the long Easter weekend. Happy Bunny Day!

 Posted by at 3:03 pm
Mar 142024

Like GPT-4, Claude 3 can do music. (Earlier versions could, too, but not quite as consistently.)

The idea is that you can request the LLM to generate short tunes using Lilypond, a widely used language to represent sheet music; this can then be compiled into sheet music images or MIDI files.

I’ve now integrated this into my AI front-end, so whenever GPT or Claude responds with syntactically correct, complete Lilypond code, it is now automatically translated by the back-end.

Here’s one of Claude’s compositions.


That was not the best Claude could to (it created tunes with more rhythmic variation between the voices) but one short enough to include here as a screen capture. Here is one of Claude’s longer compositions:


I remain immensely fascinated by the fact that a language model that never had a means to see anything or listen to anything, a model that only has the power of words at its disposal, has such an in-depth understanding of the concept of sound, it can produce a coherent, even pleasant, little polyphonic tune.

 Posted by at 11:14 pm
Feb 282024

Our cat Rufus is no longer. Today, his journey on this planet came to an end. He has been our companion for nine and a half years.

We mourn him.

 Posted by at 2:44 pm
Jan 312024

This here is our ~11 year old cat Rufus. Exact age unknown as he was a stray when we adopted him back in early autumn 2014, but he was assessed to be about 1 year old back then.

This picture was taken late last night. Today, Rufus had an ultrasound that confirmed what we feared: That not only does he have a tumor in his abdomen, but that it is inoperable, and chemotherapy is also unlikely to help.

So we are left with the final option: Palliative care, taking care of Rufus as long as we can, so long as he can still have some quality of life.

So far so good. Tonight, despite the hours-long stay at the vet, Rufus came home ready to eat a little, drink a little, even play a little. So it’s one day at a time, all the while recognizing that in this increasingly troubled world, we are among the lucky ones, so long as our main concern is the welfare of our cat.

 Posted by at 10:28 pm
Jan 182024

I gave a brief invited talk today via Zoom, participating in a workshop on cosmological models, organized by Complutense University of Madrid, Spain.

The subject of my talk was John Moffat’s theory of gravitation, MOG/STVG, to which I made significant contributions myself over the past 18 years, in an on-going collaboration with John. Judging by the questions that followed my short presentation, I think it was reasonably well received.

The workshop was streamed live on YouTube, and the video is archived.


 Posted by at 9:25 pm
Jan 132024

In 1981-82, I served as a conscript in what was then called the Hungarian People’s Army.

As an engineering student, I was trained as a radar operator, which is several notches above cannon fodder I suppose. Still, I do not have fond memories of the time.

Nonetheless, I have to admit that there were some educational moments.

Having once lived in a resort hotel that my stepfather was managing, in the spectacular, historic small town of Visegrád at the bend of the Danube, I learned how a commercial-grade kitchen, serving 100+ people, operates. Standards in Hungary were quite strict at the time, and managing such a kitchen entailed both enforcing food safety and hygiene standards and tasks such as managing and recycling meal samples, which would be used by health authorities in case of a suspected case of food-borne illness.

The military base where I spent most of my time as a conscript was an active air defense installation, part of the country’s peacetime air defense network. Nonetheless, they had a chronic shortage of officers, which meant that many tasks that would normally have been assigned to commissioned or non-commissioned officers were instead handed to us conscripts. Once they learned that I had some knowledge of how a kitchen is run, I was frequently assigned kitchen duty: No, not washing dishes (though I did that, too, in the early months of my service) but as kitchen supervisor, responsible for everything including obtaining the needed ingredients from our food storage (run by a civilian employee) and taking samples. It was a surprisingly educational experience.

Or how about the time when I was tasked with ordering… a freight train? Not just any train, mind you, but a specialized train (and route) to carry oversize equipment (our large Ural trucks that carried radar equipment and electronics) with a larger-than-standard cross-section to the USSR border, to participate in some international war games exercise. Fortunately, I didn’t have to go myself, my participation was limited to a journey to the regional headquarters of Hungary’s national railway company, where I had to patiently, and correctly, explain to the person responsible what kind of train we needed and why.

I also did minor tasks such as keeping the base’s one and only television set (an aging color set, a Videoton Color Star television, a mostly Soviet design I was told) alive. I was also responsible for the base’s movie projector, and I took weekly trips to Budapest to get a fresh movie on film, for movie night Mondays (back in the early 1980s, there was no television broadcast in Hungary on Mondays.)

The base where I served no longer exists. First, the military abandoned it. The municipality that inherited it tried to sell without much success, even as the facility was stripped, e.g., of nearly all metal bits by (I presume) metal thieves. Someone took a walk around the base in the early 2000s and put the resulting video on YouTube; it looked almost like parts of the city of Pripyat, near Chernobyl, except that in this case, I was looking at a building that I remembered very well personally, having spent some nine months of my life there.

In the end, the entire facility was demolished, to make way for a solar energy farm, if memory serves me correctly.

All that is to say that I was quite surprised, pleasantly I might add, when I discovered the other day that back in 2022, the local municipality decided to install a small memorial plaque thanking all those who served there in defense of Hungary’s airspace. The cynic in me was wondering if there was any profit in this act (it was, after all, partially financed by the EU, it says so on the plaque itself) even as I actually felt a bit of gratitude that our service was not completely unnoticed after all.

What can I say? The plaque is actually quite nice. I might even visit the spot some day.

 Posted by at 4:34 pm
Dec 242023

At this time of the year, especially in these tumultuous times, is there anything else I could possibly wish for?

Earthrise from Apollo 8

And from the crew of Apollo 8, we close with good night, good luck, a merry Christmas, and God bless all of you — all of you on the good Earth.

 Posted by at 2:34 am
Dec 242023

I don’t think I’ve ever done a “year in review” bragfest thing in my blog, but this year has been… well, surprisingly productive, helped in part by our AI friends.

Here are some of the things I created this year:

  1. A science-centered front-end for the major large language models, with support for LaTeX, markup, SVG graphics generated by the AI, and good quality PDF output. Also, savable conversations and compatibility with several Anthropic and OpenAI models. I am quite proud of this, not to mention that it has since become my primary means of accessing LLMs. (I even thought about commercializing it, but I fear it’s way too much hassle and in the end, without proper marketing, just not worth the effort.)
  2. A Web-based application to model image recovery of a rotating exoplanet with varying illumination, viewed through the solar gravitational lens.
  3. A Web-based application to model a constellation of four satellites, used in a precision gravitational experiment to detect the presence of a specific type of deviation from Newtonian gravity.
  4. A Web-based application to model imaging by multiple gravitational lenses.
  5. Another Web-based application to process and analyze emergency room medical data using machine learning.
  6. A custom telnet implementation to finally make it possible to access my game sites, and, from within the browser but without third-party plugins.
  7. A reimplementation of my “seas of Mars” Web applet, written originally in Java, showing what Mars would look like if it was flooded with an ocean.
  8. A reimplementation of code I wrote many years ago, constructing a psychrometric chart and calculator, running in a Web browser.

I also published a number of papers, both on my own and with coauthors:

  1. A paper with Slava Turyshev in Phys. Rev. D, on imaging with the realistic solar gravitational lens (SGL), accounting for its deviation from perfect spherical symmetry
  2. Another paper with Slava in Phys. Rev. D, on the spherical harmonic representation of gravitational lenses
  3. A paper with several (mostly NASA) authors in Planetary and Space Sciences, on the use of solar sailing smallsats for projects, including the SGL
  4. A paper with Slava in Monthly Notices of the Royal Astronomical Society, related to the software I described above about imaging a rotating planet with varying illumination
  5. Another paper in MNRAS, this one with John Moffat, on applying his Scalar-Tensor-Vector Gravity to the case of a difficult galaxy, NGC-1277
  6. Yet another paper in MNRAS under my own name, on recovering our key results on the SGL using strictly geometric optics
  7. Finally, another sole-author paper of mine, published in Astrophysics and Space Science, also related to the corresponding software, about using a satellite constellation for gravitational anomaly detection.

Additionally, I completed several in-house projects, including a much dreaded major Joomla! upgrade: Joomla! is the content management system I use for several of my Web sites, and the upgrade required first upgrading PHP, which in turn required fixes to countless instances of PHP code I wrote as many as 20 years ago, code that is not compatible with modern PHP versions. In the process, I also wrote replacement alternatives to two no longer supported third-party Joomla! components, to view images as thumbnails, and to view an image slideshow.

I also completed the Google foobar challenge, Google’s secret recruiting tool. No, I am not looking for a job at Google, but the challenge was, well, challenging (in a fun way) and it also allowed me to learn Python, the language I chose to implement the code that the challenge required. So now I know Python. Not a Python expert by any means, but I feel confident in my ability to use that language (which, incidentally, turns out to be more fun than I anticipated.)

So not quite an annus mirabilis (I don’t expect to discover a new relativity theory anytime soon) but not a bad year. And at least for a small part of this work, I even got paid. Not much, mind you, but I’ve been able to pay our bills so I am not complaining. I suppose if I were smarter, I’d do more work for money, but then again, there’s the quality of life thing, too…

 Posted by at 2:27 am
Dec 142023

I wanted to check something on IMDB. I looked up the film. I was confronted by an unfamiliar user interface. Now unfamiliar is okay, but the UI I saw is badly organized, key information (e.g., year of release, country of origin) difficult to find, with oversized images at the expense of useful content. And no, I don’t mean the ads; I am comfortable with relevant, respectful ads. It’s the fact that a lot less information is presented, taking up a lot more space.

Fortunately, in the case of IMDB I was able to restore a much more useful design by logging in to my IMDB account, going to account settings, and making sure that the Contributors checkbox was checked. Phew. So much more (SO MUCH MORE) readable, digestible at a glance. Yes, it’s smaller print. Of course. But the information is much better organized, the appearance is more consistent (no widely different font sizes) and the page is dominated by information, not entertainment in the form of images.

IMDB is not the only example. Recently, after I gave it a valiant try, I purposefully downgraded my favorite Android e-mail software as its new user interface was such a letdown. At least I had the foresight to save the APK of the old version, so I was able to install it and then make sure in the Play Store settings that it would not be upgraded. Not that I am comfortable not upgrading software but in this case, it was worth the risk.

All this reminds me of a recent discussion with a friend who works as a software professional himself: he is fed up to his eyeballs with the pervasive “Agile” fad at his workplace, with its mandatory “Scrum” meetings and whatnot. Oh, the blessings of being an independent developer: I could tell him that if a client mentioned “Agile” more than once, it’d be time for me to “Scrum” the hell out of there…

OK, I hope it’s not just grumpy ole’ complaining on my part. But seriously, these trendy fads are not helping. Software becomes less useful. Project management culture reinvents the wheel (I have an almost 50-year old Hungarian-language book on my shelf on project management that discusses iterative management in depth) with buzzwords that no doubt bring shady consultants a lot more money than I ever made actually building things. (Not complaining. I purposefully abandoned that direction in my life 30 years ago when I quietly walked out of a meeting, not having the stomach anymore to wear a $1000 suit and nod wisely while listening to eloquent BS.) The result is all too often a badly managed project, with a management culture that is no less rigid than the old culture (no fads can overcome management incompetence) but with less documentation, less control, less consistent system behavior, more undocumented dependencies, and compromised security. UI design has fads that change with the seasons, united only by results that are about as practical as a Paris fashion designer’s latest collection of “work attire”.

OK, I would be lying if I said that only bad things come out of change. Now that I use AI in software development, not a day goes by without the AI teaching me something I did not know, including tools, language features and whatnot that can help improve the user experience. But it would be so nice if we didn’t take three steps back for every four steps forward.

 Posted by at 10:21 am
Dec 012023

Well, here it is, a local copy of a portable large language and visual model. An everywhere-run executable in a mere 4 GB. Here’s my first test, with a few random questions and an image (one of my favorite Kliban cartoons) to analyze:

Now 4.57 tokens per second is not exactly fast but hey, it runs on my 7-year old workstation, with no GPU acceleration, and yet, its performance is more than decent.

How is this LLM different from GPT or Claude? Well, it requires no subscription, no Internet connection. It is entirely self-contained, and fast enough to run on run-of-the-mill PC hardware.

 Posted by at 12:12 am
Nov 302023

So the other day, as I was doing a Google Search (can’t exactly remember what it was that I was searching for but it was machine learning related), up pops this invitation to participate in a challenge.

Turned out to be the Google Foobar challenge, Google’s secret recruiting tool. (Its existence is not really a secret, so I am not really revealing any great secrets here.)

Though I have no plans to become a Google employee (and I doubt they’re interested in me on account of my age anyway) I decided to go through the challenge because, well, it’s hard to say no to a challenge, and it was an opportunity to practice my Python skills (which need a lot of practice, because I have not yet used Python that much.)

Well, I did it. It was fun.

More importantly, I enjoyed it just as much as I enjoyed similar challenges as a math geek in my early teens. And if that’s not a gift from life, I don’t know what it is.

And yes, I am now much better at Python than I was just a few days ago. I certainly appreciate why the language has become popular, though I can also see its non-trivial pitfalls.

 Posted by at 6:03 pm
Nov 202023

I am not Jewish. My family is not Jewish.

My father’s first wife, however, was Jewish. His son from that first marriage, born decades before I was born, is Jewish and married a Jewish woman. My mother’s grandparents, though not Jewish, worked for a Jewish family at the turn of the last century, and lived in their household.

That might explain how it came to be that I grew up using expressions like “gott sei dank” or “na zag schon”, much to the amusement of some of my Jewish friends who know less Yiddish than I. Or why I have friends who had parents, siblings, aunts, nieces, spouses murdered in Auschwitz or shot into the Danube by the Hungarian Arrow Cross during the Holocaust.

No, that does not mean that suddenly I have a favorable opinion of Mr. Netanyahu (I don’t) or that I turn a blind eye when I see innocents suffer. I have criticized and will again criticize the government of Israel. In fact, for what it’s worth, I think Netanyahu is a crook, his pact with the far right is a poison pill for Israeli democracy, and that the outsize influence of the ultraorthodox is corrupting Israeli politics. Unfortunately I also do not see a long-term solution, an achievable goal: None of the foreseeable alternatives provide an acceptable outcome: The two-state solution undermines Israeli security, annexation would create an Arab-majority state, more drastic “solutions” like wholesale expulsion or genocide (of either Palestinians or Jews) are obviously unacceptable. So the status quo remains by default, even though it’s not exactly a solution either.

But “never again” must mean something. Failure to respond to the attack on October 6 would amount to the Israeli state abandoning its most basic responsibility to its citizens. It is the sad nature of war that when one party hides behind its civilians, civilians suffer. Notably, however, hiding behind civilians only works against a civilized opponent that abhors “collateral damage”: if Israel was as savage, as hell-bent on genocide as its enemies suggest, hiding behind civilians would not work as a Hamas tactic.

Earlier, I came across a meme that depicted a female Arab member of Israel’s Knesset, enumerating the rights she enjoys as a full citizen of Israel. I changed my mind about reusing that meme since I suspect that it was created without her approval. Even though she is a public figure, so using her image in this manner is arguably legitimate, it felt a bit tasteless.

Instead, let me just repost a propaganda meme straight from Israel’s defense forces.

It’s not even new; it dates back to 2014. And yes, it’s a propaganda piece. But like all good propaganda, it is based on the sad truth.

 Posted by at 1:01 pm
Nov 082023

Sometimes it feels… so pretentious.

Here I am, saying all sorts of clever things in my blog. I once declared blogs to be write-only media, my way of shouting at the world without the world saying anything in return, but that kind of ceased being true when I decided, eons ago, to share my blog posts on social media, where a few friends at least reacted occasionally.

So who do I think I am, proclaiming my wisdom to the world, really?

For instance, a few days ago I thought I’d blog about the first precision clock arriving in America centuries ago, and promptly failing, leading to a better understanding of how the gravitational acceleration on the surface of the Earth may change with geographic location. But is there anything I can add to the subject other than what’s in the article I am citing?

Or take this report from earlier today, about Singapore’s Prime Minister expressing very much the same concerns that I have about the world experiencing a moment of danger not unlike the moments before the Great War. OK, so I blog about it. Is there anything I can add other than, hey, look, I am ever so clever, even Singapore’s PM shares my views!?

I suppose I feel most comfortable blogging about my actual research or my work. These are subjects that I can address with some competence.

Or maybe just blog about cats. They know how to be wise and silent, after all.

Meanwhile, in the world of humans…

F-15s strike weapons facility in Syria

By Lauren C. Williams and Jennifer Hlad

ABOARD A MILITARY PLANE—Two U.S. F-15 fighter jets attacked a weapons storage facility in eastern Syria on Wednesday, in what Defense Secretary Lloyd Austin called a “precision self-defense strike” in response “to a series of attacks against U.S. personnel in Iraq and Syria by the [Iranian Islamic Revolutionary Guard Corps]-Quds Force” and related groups.

So I must now follow my cats’ example and resist the urge to blog about how the US and Iran might already be at war…

 Posted by at 9:51 pm
Nov 042023

I grew up on The Beatles.

OK, I came a little late I guess, as The Beatles broke up when I was in the second grade, and truly it wasn’t until the fifth grade that a classmate introduced me to the Red and Blue albums… But I fell in love with their music. I couldn’t believe that they were not together anymore, and like many young teens my age, I kept hoping that they’d reunite until Lennon was murdered.

I never stopped loving their songs.

What I did not expect was that I’d be listening to a new Beatles song almost 50 years later, in 2023.

I admit I was skeptical at first. I expected something that would bear a vague, soulless resemblance to what The Beatles used to be, a cheap attempt to cash in on their fame one very last time.

Instead, I was listening to an authentic Beatles song. One of their best, as a matter of fact. And I was looking at a video that brought Lennon and Harrison back to life, cheerful, funny, joyous, happy…

Bless Peter Jackson. There are “deepfakes” and then there are “deepfakes”… and I cannot think of a more appropriate, more respectful use of AI, bringing legends of the past back to life, as in this video.

I have listened to the song and watched Peter Jackson’s masterful creation at least five times in a row. And every time, I was almost in tears.

 Posted by at 6:53 pm