fogbound.net




Mon, 18 Sep 2023

Borderline

— SjG @ 12:21 pm

When designing visual stuff, I often would like the ability to create a patterned frame for whatever it is I’m doing. It’s not so much work to drag and move image tiles around to make a nice frame, but I wanted to make it easier.

Thus “Borderline” was born. It’s a JavaScript tool for laying out tiles into frame designs, with a few automated features to make playing around easier.

Borderline lets you arrange small SVG files to form a border. It optionally does some rotational and mirroring transforms to make the pattern look nice.

It includes a small collection of custom, original SVG tiles to use for making nice borders. You can also “upload” your own! (since this all takes place in your browser, nothing actually gets uploaded to a server or leaves your local machine).

Once you’re happy with your design, you can export the entire border as an SVG suitable for printing or modification in your favorite vector graphics application.

You should be able to use just about any SVG file as a tile, although if it’s too big or complicated your browser may run out of memory and behave badly.

You can try it here: Borderline. Source is available at Codeberg.


Mon, 21 Aug 2023

Another “sed” one-liner

— SjG @ 1:22 pm

I needed to generate a comma-delimited, quoted list of all the .svg image files in a directory, but without the extension.

This worked:

ls -1 ./svgs | sed 's/.*/"&"/' | sed 's/\.svg//' | paste -sd, -

Hooray for the command-line!

(coming soon, why I needed that list…)

Filed in:

Mon, 31 Jul 2023

“Maker”-ing and Traveling light

— SjG @ 5:18 pm

What with the ongoing Covid pandemic (no really, it ain’t over) and various extended travel, I haven’t been spending much in-person time at CrashSpace.

I have a Silhouette paper cutter at home, and shelves of tools. But I gave away the CNC mill due to space and ventilation considerations. I’ve been tempted to get a small, low-end laser cutter, but have avoided it for the same reasons: I have very little space, and the space I do have isn’t good for building projects (nor configured for safe ventilation).

I closed the Etsy store where I was selling designs because it costs more money than it made, and API changes meant I was spending more time updating my code that built and managed the listings than I was making or selling art.

All this to say, I haven’t been making much in the way of physical projects of late. What’s more, I haven’t really done much to finish the Javascript geometry program, or several other software projects (converting Crowcut Card Designs into my own SVG store and/or giveaway site, a syllable/metric foot analysis tool, a writing management database, … always so many ideas!)

This autumn and winter, the primary initiatives will be decluttering and a few home repair projects. I’m still hoping to get to Crash to make a few things, but time will tell.

Filed in:

Fri, 30 Jun 2023

Perspective correction and uncanny valley

— SjG @ 8:23 am

It’s interesting how optical corrections to “fix perspective” can end up making something look simultaneously “correct” and very, very wrong.

When I say “fix perspective,” I’m talking about the convergence of lines due to perspective. The further something is from your eye, the smaller it appears, so if you’re looking up at a building, the top looks narrower than the bottom. Similarly, if it’s not in the center of the frame, the different vanishing points combine with general lens distortion to make a funny-house mirror image.

This building does not, in fact, get smaller on the higher floors.

Now, optically, your eye sees perspective this way too, but the image-processing in the brain tends to counter it. What you “know” about the building overrides what you’re seeing, and you don’t really notice that it’s going all pointy on top. Weirdly, something that doesn’t bother us when we’re out on the street tends to bother a lot of people when they see it in photography.

In the old days, if you wanted to prevent this perspective narrowing of an architectural feature, you’d use an expensive and somewhat esoteric piece of equipment called a “tilt shift lens.” It would allow you to align the lens with the plane of what you’re photographing, and thereby cancel out some of the distortions. What that means in practical terms is that you can, in a controlled way, counter the convergence of lines due to perspective.

Now we do the same with ordinary lenses and software.

Where the “uncanny valley” comes in is that the convergence due to perspective can be fixed, but the point of view does not actually change. Where you see this dramatically is in something like this tower, where the perspective is telling your eye that you’re seeing it straight on, while the point of view of the constituent beams is from below. It’s mildly Escheresque. Compare the “corrected” and “uncorrected” views below.

I guess the solution is to always photograph everything using remote-controlled drones that sit in the perfect perspective spot, and then fix any lens distortions.


Wed, 14 Jun 2023

pamd running out of sessions for cron

— SjG @ 6:51 am

I manage a very busy Rocky Linux test-server. For one staging environment, cron is already running five or six maintenance scripts every minute. But when the tests run, the system has to do a lot of additional permissions fixes and filesystem adjustments. I’ve started seeing in the logs the following error message:

pam_systemd(sudo:session): Failed to create session: Maximum number of sessions (8192) reached, refusing further sessions

Now, there is a known older problem with systemd and dbus, that comes up when you search for this error message. I couldn’t find any concrete actions I could take to fix the issue. The other major search results are RedHat pages behind their subscription wall, and, at this point I’m apparently too dumb and out of date to even be able to figure out how to pay for a RedHat subscription.

I think I’ve found at least a temporary solution, however. In /etc/systemd/logind.conf there is the SessionsMax field where you can override the default. I doubled it to 16384, then ran systemctl restart systemd-logind

I’ll have to see if that’s a viable long-term fix rather than just treating the symptoms of a bigger issue.