Your leaking thatched hut during the restoration of a pre-Enlightenment state.


Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").


decay & ruin
Biosphere II
dead malls
Irving housing

got that wrong

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff

(nobody does!)

Like my brownhouse:
   not the worst customer at the Hurley vet today
Tuesday, March 12 2024

location: rural Hurley Township, Ulster County, NY

It was a beautiful springlike day, and it felt kind of wrong to spend so much of it indoors.

Gretchen had me run some errands before she had to go to her last of this "semester" of poetry classes at the prison in Coxsackie. After first dropping off that keyboard I couldn't use (the one for the bookstore cashiering laptop) at the post office, I picked up a book at the Hurley Library. Gretchen is a voracious reader and well-known there. So they always chuckle a little and brighten up when I say who I'm there to get books for. Next I went to the Ghettoford Hannaford in Uptown mostly to get oat and soy milk, though I also got antacids, diphenhydramine, broccoli, and spaghetti. The CVS had a closed pharmacy when I'd stopped there along the way, so I got my 96 count generic pseudoephedrine at the Walgreens. Finally, on the drive home, I picked up Neville's prescription at the Hurley vet, which is various joint health medications to get him to walk more. It came to $200, which made me suspicious, but Gretchen had just told me to "pick it up," so that was what I did.
But then when I got home, Gretchen had something of a melt-down about the prescription being wrong. She most definitely didn't want the rimadyl (aka carprofen), which the Hurley vet charges four times what it costs to buy without a prescription online. In the past when this happened, the vet refused to accept a return, saying that was their policy for prescriptions. So Gretchen tried to call them, but couldn't get through. So she told me to go back to the vet and say that I was still running errands when I talked to my wife and learned that this was the wrong prescription and try to return them despite the "policy." "What do I do when they tell me no?" I asked. Gretchen paused and thought, so I helpfully suggested, "Should I go limp? Because I'll go limp if that's what you want." She told me to just try my best. So away I went, driving a bit faster than usual to get this unpleasantness over with.
At the Hurley vet, I marched up to the desk of the same woman I'd just dealt with and said that I'd just talked to my wife while I was in town and that this prescription was wrong and we were supposed to be getting the "other medication," not the rimadyl. Of course, it would've been nice to know what that was, but they had it all on computer (it was thyroxine). My performance was emphatic enough for her not to question it, and she immediately began having someone fill the corrected prescription. It turned out they could accept returns for prescibed medicines, and my total expense was amended from something like $200 to something like $50. That's the kind of success only Gretchen is usually able to achieve in these sorts of situations, so it felt a little empowering. And it turns out we're not the only customers the Hurley vet is pissing off; while I was waiting for the prescription to be redone, the staffer I was dealing with talked to someone on the phone who was demanding a specific medication that they didn't carry. When she explained that it was the sort of thing only specialized practice would have, the caller became irate and apparently threatened to come to the office with a gun. "I'm calling the cops!" she declared, telling her colleagues what the caller had just threatened to do. I chuckled, but nobody else in the waiting room (including a remarkably ugly young woman and her similarly-ugly toddler) reacted at all.

After Gretchen headed off to that last prison poetry class, I took the dogs on a walk up the Farm Road. Along the way as we passed the wetlands on either side, the spring peepers were so worked up that it sounded like a nearby flock of Canada geese. I tried to see one or more with the telephoto lens of my camera, but they're a wily amphibian. I returned back home atop the escarpment to the west, destroying any gypsy moth (aka spongy moth) egg masses I saw. As many as I've destroyed along the paths I walk, you'd think they'd all be gone, but there are always more. And soon they'll be hatching.

Back at the house, I did some work merging two divergent code bases of my Moxee Hotspot Watchdog system together to make a beautiful new hybrid. But then when I tried to compile it on my main computer Woodchuck, I kept running into problems. The code consists of a single .ino file (which is most of the code, written in a flavor of the language C) and a single include called config.c, which is where some consts are specified. In the past, for whatever reason, the config.c was included in the .ino file with a line that looked like so:

#include "config.h"

That is, it was included by a reference to a .h file (a "header file") that didn't actually exist. Apparently the Arduino IDE knew what to do with such files, automatically generating the .h file and linking it to the config.c file. But in the version of the IDE on Woodchuck (1.8.16), it ignored the include to the non-existent .h file entirely, and the consts in the config.c file were never set. But if instead I tried to link to the config.c file directly with a

#include "config.c"

it would somehow include the config.c file multiple times, which meant that the consts were "redefined," causing everything to break. My exposure to the C programming language is almost entirely through the Arduino IDE, so I don't know the finer points of how one file is supposed to include another. But I wanted this to work, and no Google search was being helpful. So I asked ChatGPT to give me the simplest possible example of how one Arduino .ino file should include a .c file, with the names and contents of all three files. It dutifully spit out what I wanted, and when I tested it, it worked. The key here was to define (but not set!) all the consts in the .h file, beginning with a new and unfamiliar keyword extern. Then it compiled correctly and didn't attempt to re-define the consts. All of this took a couple of hours of experimentation and ChatGPT prompting, but all it did was overcome the peculiarities of this particular version of the Arduino IDE. It's things like this that discourage people from getting started with software development, which is ironic given that the Arduino IDE was specifically designed to give relatively untrained people access to the wonderful world of programming microcontrollers.

Meanwhile, my gut was giving me problems again. It felt like gas bubbles trapped under the bottom of the left side of my rib cage. It was pretty uncomfortable by the time I went to bed at around 11:00pm, but I fell asleep anyway without any chemical assistance. But the I woke up at 3:00am with renewed pain in that same area. Was I passing a gallstone? (Nope, that's the wrong place for it.) I also felt some acid reflux discomfort, the kind that needed baking soda instead of weak-ass calcium-based antacids. That seemed to help enough to get me back to sleep, and when I woke up the next day, all that pain was gone.

Along the Farm Road with the dogs today, looking south. The wetlands are expanded after recent rains (which came as snow in the Adirondacks), and you can see water on the left. Click to enlarge.

For linking purposes this article's URL is:

previous | next