Oct 10, 2025
Dust Mite & I went to the hospital on Wednesday; me for The Big Yeet, dust mite to chaperone me. And here we sit two days later waiting for my remanufactured bits to heal up to the point where I can walk without them falling out :-)
And; best decision, no regrets, probably should have done this a decade ago but the best time to do it was when I got it done.
—orc Fri Oct 10 17:41:20 2025
Oct 07, 2025
An almost full moon at dusk, with a few whispy clouds between me and it
—orc Tue Oct 7 22:13:54 2025
Oct 03, 2025
Dust Mite has a slice of pie
—orc Fri Oct 3 23:25:21 2025
Oct 02, 2025
A vegan pumpkin pie, based on a recipe from the internet and the pumpkin pie recipe in the joy of cooking. It uses coconut milk, so it’s got approximately 10,000 grams of fat :-)
—orc Thu Oct 2 22:19:24 2025
Sep 26, 2025
Life is just a bowl of grapes?
—orc Fri Sep 26 23:57:59 2025
Sep 20, 2025
Dust Mite chills with some pie crust
I had my flu & pneumonia vaccines on Tuesday, then the latest round of Covid vaccine on Thursday, and they all caught up to my on Thursday night, leaving me laid out all today.
I finally got enough energy to make up some pie crust at about 11:30, and Dust Mite is standing guard while it chills so I can make a(nother) peach pie tomorrow.
—orc Sat Sep 20 00:01:02 2025
Sep 18, 2025
A short P&W freight led by one of their GP38s – running long hood first – comes screaming by me at 12th & just south of Clinton. This train must have been going about 40mph (running ahead of a southbound Cascades, maybe?) and after I took this picture I had to clamp down on my rando bag to keep everything from being sucked out by the slipstream.
(I was outside of the loading gauge, but in all honesty not far enough. I should have been north of that spraypainted line on the street, but I am old and foolish now and stopped in my tracks to take pictures when I saw the headlight pop into sight at the curve west of the ORHF’s shop/museum facility.)
—orc Thu Sep 18 22:36:44 2025
Sep 17, 2025
One of three that I saw when I was going out to St Vincents & the Beaverton branch of the portland clinic today.
(After several days of climbing the eastern side of the West Hills, dying repeatedly on the climb, I decided that since I was going to St Vincents as well as TPC I’d ride up to Lloyd Center, take the trolley under the West Hills, and proceed from there. Less riding (27 miles today) but more trolleys.)
—orc Wed Sep 17 22:01:42 2025
Sep 15, 2025
Not gonna mention the railroad name, but it’s currently the most fascist one in the USA
—orc Mon Sep 15 23:33:21 2025
Sep 12, 2025
The day got away from me, so here are at midnight with the traditional mite belly up to a pie :-)
—orc Fri Sep 12 23:56:13 2025
Sep 08, 2025
Adding extended attributes and percentage widths & heights to image links exposed a delightful Discount bug that’s been there since I put amalloc in 17 years ago.
The problem was that the amalloc()
function (#defined to just malloc()
in amalloc.h
) was using the libc calloc()
to grab memory, and calloc()
helpfully by design initializes the memory to nulls, which just happens to be what I need to null terminate strings by default.
This was “great” for me, and I probably had a reason for doing it, but there exist malloc implementations (which are exposed if you built discount w/o amalloc) that don’t initialize the memory unless you ask for it, and which often aggressively initialize that memory to something other than null.
So I changed amalloc to initialize the new buffer to 0x8f
s and boy did the discount test suite have things to say about this!
It’s allegedly fixed now (I try to explicitly null-terminate Cstrings and to explicitly use calloc()
when I need a buffer for structures) and it out there as Discount 3.0.1.2.
I’m sure I’ll find some other places where I was making assumptions about amalloc, but the obvious ci-killing places seem to be gone for now.
—orc Mon Sep 8 11:33:50 2025
Sep 07, 2025
At the old National Guard artillery range (now the Sunrise Corridor)
—orc Sun Sep 7 17:46:44 2025
After releasing Discount 3.0.1 it didn’t take more than 3 days for someone to discover that I’d forgotten to null terminate three strings, and their cc + libc ended up being far less forgiving of that than the various cc + libc collabos I had were.
So Discount is now at version 3.0.1.1, which is identical to 3.0.1 except for three new null terminations.
Sigh.
—orc Sun Sep 7 16:31:34 2025
Sep 05, 2025
Taking Dust Mite’s blood pressure (0/0)
—orc Fri Sep 5 23:55:25 2025
Sep 04, 2025
I was going up to Legacy for a pre-Big Yeet consultation when I was stopped by a northbound train from Milwaukie.
—orc Thu Sep 4 23:59:12 2025
Discount has been rolled up to version 3.0.1.2, and, whew, where do I begin?
- I ran out of slots in the original bitmap flags structure, so I dumped it and replaced it with a new flag blob accessed through a flag pointer. This broke the entire published interface and required the update to version 3 (this is why it took me over 3 years to implement it; I needed to test the code to within an inch of it’s life and between that and transitioning it just ate up time like you wouldn’t believe!)
- Because I changed the
mkd_flag_t
structure and replaced it with a blob, the old flags are now a pointer and using the mkd_flag_isset()
, mkd_set_flag()
, and mkd_clr_flag()
functions I introduced during the end of the run for version 2.x.x is now mandatory unless you’re fond of core dumps.
- The way I’d originally implemented HTML5 (if that’s even a thing anymore?) support was to have a global structure that I allocated once and then you were stuck with it forever (and had to deallocate the structure whenever you stopped using the library otherwise it would leak memory), so I fixed that for v3 by moving the html5 details inside the
MMIOT
(activated by setting the flag MKD_HTML5
) so it will automatically be deallocated when you are done with a document without affecting other MMIOT
s.
- Github user mwfont-csl suggested (and provided a patch – which, alas, I couldn’t use because github doesn’t seem to have a way to export patches by themselves?) adding support for fractional sizes on images as well as pixels sizes (so, 40%×40% instead of 40x40 pixesl), which I worked into the code using mwfong-csl’s original code as a reference.
- mwfong-csl also provided a patch to do extended attributes on links and image links, via putting those attributes into a
{...}
bracketed block immediately after the link. As before, I couldn’t figure out a way to export just a patch from github, so I worked it into the code using their original code as a reference.
- Annoyingly, netbsd11, broke the implementation of
isspace()
by putting in a version that dumped core if the input character was outside the ranges of EOF or 0x00..0xff (I deliberately use the word broken because it broke the principle of least surprise, which either nobody cares about or is trying maliciously to stop people from using C anymore.) Fortunately could patch around this misbehavior by detecting it in configure.sh
and telling the compiler (clang and gcc; dunno about other compilers) to make the default character unsigned.
- There are also a few of memory leaks remaining, and I fixed a couple of them before this release.
As usual, don’t be surprised if running this code makes your computer phase into another dimension, or, less excitingly, melt down; it’s been working for me™ but that’s no guarantee of success elsewhere. Do note that you need to recompile everything from scratch to use the new code, because I’ve kept the old interface around (but not actually accessable yet because I didn’t manage to set up compatibility flags correctly), internally named the new published interface with a v3 prefix, then hid it from the user by #define
ing all the v3mdk… functions to mkd…
And don’t forget to check all of your code that uses flags; since flags are now a blob, you need to allocate the flag structure (with mkd_flags()
) before attempting to use it, and you must never try to do bit manipulation on them because they are now a pointer to an black box!
But anyway, New Code™ ready for your downloading enjoyment – mirrored on github as well; download it today for an exciting tomorrow! :-)
EDIT: I forgot to null-terminate three strings, which my ci network didn’t catch :-( So instead of 3.0.1 it’s now 3.0.1.1 !
SECOND EDIT: My paranoid malloc code was returning buffers initialized to nulls, which hid even more strings I’d not null-terminated (as well as two structure allocations), so I had to fix that and make 3.0.1.1 into 3.0.1.2
—orc Thu Sep 4 01:54:44 2025
Sep 01, 2025
A northbound train made up of two SD-600s in the new blue with a traction orange stripe paint scheme crosses the viaduct south of downtown Milwaukie late this afternoon.
—orc Mon Sep 1 01:58:05 2025
Aug 29, 2025
Aug 22, 2025
Watching the clock
—orc Fri Aug 22 23:58:20 2025
Aug 21, 2025
Maryhill Art Museum appears to have a turkey in residence. So I had to take her picture.
—orc Thu Aug 21 23:56:19 2025
Aug 15, 2025
The only picture of dust mite I managed to get after a long time fighting with the camera & upload process. This is pie #14 – another cherry pie from an abnormally long pie cherry season. Not that I’m going to complain, oh no, but the freezer is starting to get filled with frozen pie cherries :-)
—orc Fri Aug 15 23:58:12 2025
—30—