Incoherent ramblings

Stream of consciousness dump: new job, claude terminal, vscode, vim mode, …

May 4, 2026 Incoherent ramblings 2 comments , , , ,

This post is a fairly random stream of consciousness dump, including bits on all of the following:

  • Job transition, and hints of what I’m going to be working on
  • Vscode, and vim mode deficiencies
  • AI development integration

Job change

My last day at Lemurian was two weeks ago, after 11 months there. I enjoyed much of the work, which was well suited for my skills and aptitudes, and learned a lot, but ultimately it wasn’t the right fit for me. I miss a number of the people I worked with, and wish them and Lemurian continued success.

The new job is at a just-formed startup, with a handful of developers, no product yet, and no Canadian corporate presence (so I’m working as a contractor for now). Budget is tight and there’s no additional hiring capacity at the moment, so this isn’t a “come join us” post — it’s more of a “here’s what I’m up to.”

That new job is really fun so far. In one week of 14+ hour days (with extensive Claude generation of boilerplate tablegen/parser/builder), I have most of an MLIR language dialect + parser/builder built for a specific programming language. There’s lots more to do, and the interesting and tricky parts will start soon, once I have infrastructure in place. The work is going to be lots of fun; the team is great, really capable, and knows how to build and get the job done. I don’t know how long it will take us to get the product built, and we are starting from absolutely nothing, but the pieces are coming together quickly.

Vscode

At Lemurian, most people used VSCode for their development. I’ve been using tmux+vim+cscope+ctags+perl so long that I found it hard to make the switch. I’d start in VSCode in the morning and, in frustration, end up back in the terminal in short order.

As an example, suppose that you want to filter the current function through a script (say, clang-format). In vi, you can do something like:

:,/^}/!clang-format

or if your function is indented (by four spaces, say):

:,/^    }/!clang-format | sed 's/^/    /;s/ *$//'

VSCode has a vim mode, but its pattern selector is broken, so you can’t do the last (I don’t remember if you can do filtering either, but let’s stick to the selection issue). To do that line selection in vim mode VSCode, the line range selection part has to be written with the following clunky expression:

:,/^\s\s\s\s}/

It was little quirks like that which repeatedly ejected me from VSCode back to the terminal, or I’d run both VSCode and terminal. It was a strange workflow.

There were a few things that I liked about VSCode:

1. The right-click for type definitions was really nice. I do this the hard way, with memorization, grep, cscope, ctags, and other ad-hoc methods.
2. The autocomplete was nearly magical sometimes.
3. The integration with Claude Code or other AI agents works fabulously, giving the agent full context for the repo and project.

Points 1 and 2 may eventually draw me back to VSCode, despite how slow I feel working in that environment. On the other hand, the AI tools are so good now that English is becoming a programming language. Do I really need to go through the pain of figuring out how to be effective in VSCode?

Claude terminal

For point 3, at the new job, I’ve now got a great replacement: Claude terminal!

Running that terminal application (in an ssh session to my development VM), I can grant the AI tooling access to the repo, as I could in VSCode.  However, I’m able to run the claude session in a tmux window (tmux rename-window claude; claude), and away we go.

A development model that works really well is to describe the desired task, have a conversation about it, and have it produce a design document and execution plan.  I review that, choose which parts I want to do myself, and throw the tooling at the rest, then review that work thoroughly.  The result is staggeringly fast iterations.  Some spectacularly large systematic tasks that may have taken months to do unassisted, can be done in hours.

One gotcha: I’d like to be able to enter multi-line prompts in the terminal UI application, but haven’t figured out how. Claude claims that shift-enter works, but perhaps only in the web app? I’ve resorted to writing some prompts in a file in a separate tmux window and then asking Claude to read that file.

Wonderful Life=Giving Radium

March 22, 2025 Incoherent ramblings

From “The Wide World” Magazine, June 1905 edition

“This remarkable substance is absolute and quick death to the germs of cancer, tumor, consumption, malaria, blood poison, ulcers and all forms of existing disease.  When it enters the system every vestige of disease is driven out, as no germ can live in its presence.”

The amusing thing is that the idea of this advertisement has a close analogue in modern medicine, as chemotherapy is essentially the same idea.  Chemotherapy is also a gross system wide attack on the body, a desperate hope that it can be used to kill off the cancer cells faster than the rest of the cellular structure of the body.  It’s the kind of treatment that future Bones, in Star Trek IV, will eventually be describing as “What is this, the dark ages?”

I have three of these “Wide World” magazines that I got in a “unknown” box of pulp fiction magazines from a second hand store when I was a kid (Argosy, Blue Boy, …).  The ads from these magazines are the best part.  I think I’ve posted a few more of them on my old blog, but I should systematically go through them for archival purposes, and share them all.

Coffee making procedure when you are too tired to make coffee

November 21, 2023 Incoherent ramblings , ,

Here’s the 15-20 minute coffee making procedure when you are tired enough that you should have adult supervision in the kitchen:
  • Boil water.
  • Put beans in coffee grinder.
  • Start pouring water over unground beans in grinder.
  • What the !%!%^! am I doing! 
  • Pour out damp beans, as you watch water drip out of bottom of plugged in grinder.
  • Take apart coffee grinder, and dry out the inside.
  • Blow out remaining moisture with air compressor in back shed.
  • Put grinder back together.
  • Grind coffee beans.
  • Put grounds in the french press.
  • Reboil water.
  • Hot water over grounds in french press.
  • Wait and plunge.
  • Enjoy.

Pondering the Human Calculator’s “rule of nine”

March 9, 2022 Incoherent ramblings , , ,

Mike Rowe’s most recent podcast (ep. 241 the Maddest March Ever), with Scott Flansburg (aka the Human Calculator), Scott mentioned what he called the “Rule of Nine”.

Take any 2 digit number, for example, \(71\), and:

  • Add the digits (in this case that gives: \(8\))
  • Subtract that from the original number, giving, in this case: \(71-8 = 63\)
  • The result will always be nine times the first digit.

Listening in double speed (and I think Scott may be a fast talker anyways), this sounds impressive, perhaps even mysterious, but it is easy to decode:

Let’s represent that two digit number as ‘ab’.  i.e:

$$a b \equiv a * 10 + b.$$

The algorithm gives us:

$$a * 10 + b \,- (a + b) = a * (10 – 1) = 9 * a$$

We see that this “Rule of Nine” algorithm above has a built-in distractor, the second digit.  You could express it more simply as:

Take any 2 digit number, for example, \(71\), and:

  • Ignore the second digit, giving in this case \(70\)
  • Subtract that first digit from the original number, giving, in this case: \( 70-7 = 63\)
  • The result will always be nine times that first digit.

But it’s not as cool to point out that \(7*10 \,- 7 = 9 * 7\).  It’s kind of cool that adding the digits of the result will again always be nine: \(6 + 3 = 9\), which I am sure was also mentioned in the episode, but we can also decode that secondary rule of nine.  That second rule of nine you know from ancient history when you learned your time tables, but algebraically, it is nothing more than:

$$10 * (x \,- 1) + 9 \,- (x-1) = 9 * x – 10 + 10 = 9 * x.$$

For example, for \( x = 7 \)

$$10 * 6 + (9-6) = 63$$

but we can also write that as

$$10 * (7-1) + (9-(7-1)) = 9 * (7-1) + 9 = 9 * 7,$$

which isn’t as cool.

Finally, some sensible cause and effect analysis of the Ukraine conflict.

March 1, 2022 Incoherent ramblings , , , , , , , , , , ,

When you see the media all moving in lock step beating the drums of war, it’s clear that there’s a heavy propaganda element to the story, and that there must be deeper issues at play.  It seemed obvious to me that there was surely US funded covert conflict undergirding this story, as has been repeatedly been the case in so many other world conflicts.

I’ve not been going out of my way to ferret out that info, but it was inevitable that some would eventually cross my path.  I’m sure there will be more, but here’s one little bit of the story:

Ep. 2074 Russia, Ukraine, and NATO

This was, in my judgment, a sensible cause and effect analysis on the Ukraine conflict, that doesn’t just try to paint things as a reaction to NATO incursion (which is surely some part of the story.)

In that interview, Tom Wood’s guest, Gilbert Doctorow, expounds on two specific points that are significant.  The first is that there has been an informal undeclared war against the Russian Ukrainian states for 8 years (with active shelling of Ukrainian/Russian civilians in those areas, and explicit disregard for the existing negotiated treaties).  The second point is that the Ukrainian President’s recently declared his intent to start a Ukrainian nuclear weapons program.

In addition to those points, recall that psychopathic elements in the US government and power broker circles financed a coup in the Ukraine for the tune of $5 Billion dollars in 2014 (Obama era).  Some of that financing went to literal NeoNazis! We have multiple generations of US government corruption in play, with Trump keeping up the game by coordinating US weapon sales to Ukraine, and with Biden’s family playing money laundering games (and who knows what else) in the region.

I’m not excusing Putin and the psychopathic elements that surely also exist on the Russian side. There is plausible reporting on Putin’s use of bombing or attempting to bomb his own people in Moscow to justify the Chechen war. It takes a special kind of evil to kill your own people to justify killing other people. There’s also considerable reporting on the disappearing of and deaths of Russian reporters and dissidents. I’d be very surprised if there was not truth to a considerable portion of that reporting given Putin’s KGB origin story.  Putin is not a good guy in this story, even if there is unreported rationale for his actions.

It takes a lot of work to get a full scale conflict to play out, and this one is big enough that apparently everybody seems to have simultaneously forgotten all the covid fear mongering, and government and medical tyranny of the last two years. One thing that we can be certain of, is that a lot of people will make money from this war and the financial gouging that is enabled by it, regardless of the extent that it is taken.

Lots of people on both sides will die, as powerful factions on both sides profit from the chaos.