fogbound.net




Sat, 9 Dec 2023

A Dead-Simple Slideshow

— SjG @ 12:30 pm

I have tens of thousands of photos I’ve taken over the years.

I think some of these photos are pretty good, but most are languishing unseen on random hard drives.

To share them, I’ve been a member of Flickr, I’ve posted on the late lamented Twitter, and I post some onto Mastodon. I’ve also created numerous gallery applications/server scripts/web sites (e.g., Statgal), but they’ve generally been clumsy or take too much work to maintain. So I’ve been working on a dumb PHP/JavaScript slideshow thing that will scan directories, cache the details, etc.

Here’s introducing PhotoSpinner. It’s a quick’n’dirty script to provide photos. It’s very simple and allows me to publish categories of pictures without a lot of effort. Source code’s at Codeberg.


Sat, 2 Dec 2023

Tilings and Rotations

— SjG @ 2:29 pm

My math is abandoning me. I started out with the design below, which can be used to tile a plane. My thought was that I would rotate the “blade-like” hexagonal elements, since their shapes mesh almost gear-like when rotated in opposite directions. Behind them, the pinwheels would also rotate in alternating directions.

Hexagonal-design with pinwheels and blade-like elements

It’s not hard to convert a hexagonal tiling into rectangle tiles that will evenly cover a plane. In this case, drawing a rectangle from the centers of the the blade-like elements at 2, 4, 8, and 10 o’clock will work. Ah, but not necessarily if the elements are rotating! The rotations won’t match up. I’d need to expand the pattern and cut a larger tile from the expanded pattern.

Of course, it also quickly became obvious that I need to consider it a triangular tiling, not the hexagonal tiling that was in my head. With a triangular tiling, I can’t have the blade-like elements rotating in opposite directions because you run into this problem:

Uh-oh! Odd number of elements can’t rotate in opposite directions.

Naturally, any odd-numbered circuit will have the same issue. But say we treat the center blade-like element from the initial design differently, and replace it with a different shape, say. The six elements around it could rotate in alternating directions.

Separate treatment of the hexagon’s center

You’ll no doubt see where this is going. With this design, I could tile the plane. But what if I wanted a variation of this where the center elements, different though they were, still rotated? I end up back with a variation on my triangle problem.

So after that, I briefly considered going back and altering the original design, but instead decided I didn’t want to animate it after all.

:shrug:

Filed in:

Tue, 14 Nov 2023

My Geometry BS, revisited

— SjG @ 7:14 pm

So, back in January, I posted about being back on my BS with geometry programs. Not too long after that, I think, I got distracted and changed focus and didn’t work on the code at all.

Well, in keeping with the idea that it’s better to do something half-assed than not do it at all, I’ve posted the code, such as it is. It’s a kaleidoscope-like thing written in Javascript, and outputs in SVG for all your re-use needs.

The programs flaws are many. It uses only line segments, not splines, so curves are not smooth. It doesn’t actually merge the line segments into continuous shapes, so the resultant SVG files are huge. And it’s written in Javascript, so in addition to all the mistakes I’ve made, it’s got bugs that may not even be mine.

Still, I think it’s fun to play with. Maybe one day, I’ll write code to merge the line segments, and possibly weave overlapping lines into knot patterns (which was the original intent). But for now, here it is: Tiler.


Thu, 9 Nov 2023

Winking Hummer

— SjG @ 4:33 pm

I was doing my usual skulking about and chasing the garden hummingbirds, when this one made it clear it knew what was up.

(That’s not CG, AI, or fakery. The image is animated from two successive frames, shooting at 7fps)


Tue, 10 Oct 2023

Which files are dupes

— SjG @ 4:56 pm

Over the past six months, I’d copied a set of files down from a network drive, then new ones were added to the network drive, and I’d copied some of the new ones down but maybe not all? How could I possibly clean up this mess?

Easily, it turns out!

$ diff -srq /mnt/Volumes/2023/Bank_Statements/ /local/receipts/2023/

This will list all the files, and mark if they’re only in the /mnt/Volumes/2023/Bank_Statements/ directory, only in the /local/receipts/2023/ directory, if the file exists in both places but is different, or if the file exists in both places and is identical. The -s flag means “report identical files,” the -r flag is to go recursively, and the -q flag just announces the files are the same/different rather than showing their differences.

This’ll work as long as the file names have not been changed. If file names have changed, it’ll require a more robust utility.