~starbreaker/matthewgraybosch.com

d5800dc2 — Matthew Graybosch 5 months ago main
added proof of ownership
IT'S EASY GOING GREEN

It doesn't take much at all; just a couple of find/replace operations.
0eca6b9a — Matthew Graybosch 5 months ago
YAK SHAVING

At this point I'm just messing around. I do that when I'm tired but
don't have the sense to just shut down and go to bed already. But I
honestly wasn't happy with the body padding on desktop.
31b23d72 — Matthew Graybosch 5 months ago
APACHE CONFIG TWEAKS

Since I'm not running my own VPS but renting shared hosting, I don't
have access to the main httpd configuration file. I instead make do
with .htaccess in the site's root directory.

I'm not doing anything fancy here, just setting up cacheing and
compression for various file types.

And I have a few silly custom headers in case somebody looks at the
actual HTTP response after visiting my website, perhaps via cURL.
4b48034b — Matthew Graybosch 5 months ago
ROBOTS.TXT CLEANUP

- removed most comments
- AI crawlers no longer have separate disallow statements
- non-AI crawlers gets /index.html and nothing else

Why? I don't want AI crawlers scraping my site. Nor do I want
commercial search engines to have access to anything but my homepage.

I have come to think that only human curation and word of mouth is are
worthwhile approaches to discoverability on the web. Search engines
will never help personal websites.
49d80bbb — Matthew Graybosch 5 months ago
A SMALL TWEAK

I decided that <summary> doesn't need to take up quite so much
vertical space.
328959c6 — Matthew Graybosch 5 months ago
NOT JUST FOR SENDMAIL OR AUTOTOOLS

I suspect that if people know about the m4 macro language at all, they
associate it with the pain of configuring Sendmail and GNU autotools.
It's been a part of Unix since 1977, having been developed by Brian
Kernighan and Dennis Ritchie originally for use with Rational Fortran.
It's part of the POSIX standard, the BSDs have their own m4
implementations, and Linux generally uses GNU m4.

It's one of those little tools you might not think to use, or if you
do think to use it you might decide you'd rather solve Lemarchand's
Box and summon some Cenobites than deal with it because you've had bad
experiences. I don't blame you, either.

It doesn't seem so bad in small doses, though, for small and
relatively simple tasks. For example, generating a <picture> element
inside a <figure> with a caption, height, width, and alt text. I can
create a macro that takes these parameters as arguments. The macro can
either generate all of the HTML on its own, or pass these parameters
to other macros for specific elements.

It's currently overkill to create separate macros to create <picture>
elements, or for their component <source> and <img> elements, but I
could always do that later if I wanted. In the meantime, this macro
seems more convenient than creating a HTML partial and then including
it since you can use m4 in a pipeline with other shell utilities.

I could probably use it for a few other little things on my personal
website.
087b8a87 — Matthew Graybosch 5 months ago
A LITTLE POLISH

I had noticed that the text in my page's footer was a bit cramped, and
if I'm seeing it then it's possible that visitors whose eyesight is
even worse than mine might notice it too.

I had also decided to use a softer black for drop shadows on images to
match the softer black I'm using for text (eigengrau).

I'm also adding a bit of styling specifically for desktop and laptop
screens using the (pointer: fine) media query. I don't know if the
ideal text width on a computer screen really is 66 characters, but I
figure that if you've got a desktop or laptop you probably have a
reasonably high-resolution screen and don't want to pan-and-scan by
turning your head to read. So the body gets limited to a relatively
narrow column of text and gets a bit of border and drop shadow to
dress it up a bit. I also changed the <html> background color to be
different from that of <body> since CSS allows that, and increased the
base font size.

If you haven't seen the ch unit used in CSS before, it's a bit like em
in that it represents the width of a particular character. Whereas em
represents the width of capital M, ch represents that of 0. It isn't
fully supported; IE11 only counts the width of the 0 character and not
the bit of space surrounding it, and Opera Mini doesn't support it at
all. However, since Opera Mini is a mobile browser I doubt the lack of
support will prove a problem. Likewise for IE11, which is supposed to
be as dead as Cthulhu (but might yet rise again when the stars are
right).
033b50a1 — Matthew Graybosch 5 months ago
A SMALL OMISSION

I don't need to push my source text or metadata to the host, but I had
forgotten to update my exclude file.
e8ebf327 — Matthew Graybosch 5 months ago
DON'T TRY THIS AT HOME

It probably isn't good security practice to reveal your website's SSH
host and username if you carry around a laptop in public and are
likely to lose it to theft. If I was using password authentication
instead of SSH keys that I can cancel if I lose a computer or have it
stolen, I wouldn't be doing this at all.

But since I only work on my website using desktop computers, and I
authenticate with strong keys, somebody would probably have to break
into my house to access my site's host. If I'm wrong, I've got nobody
to blame but myself for choosing convenience over safety.
0bed3952 — Matthew Graybosch 5 months ago
INTRINSIC GRAY

I ended up doing what I said I might do and replace black with
eigengrau (hex #16161D).

Here are some fun facts for you: "eigengrau" is German for "intrinisic
gray"; it's the color the human eye sees in the absence of light. It
can also be called "eigenlicht", or "intrinisic light".

Unfortunately, it was never defined as a named web color.

More information on <https://en.wikipedia.org/wiki/Eigengrau> if
you're interested.
bccec928 — Matthew Graybosch 5 months ago
GETTING THE BLUES

I had originally created this stylesheet for my personal website at
starbreaker.org, but I think it's worth reusing here as well.

However, to create a subtle visual distinction between this website
and the other, I'm changing background colors.

The web color "ghostwhite" is a very subtle shade of blueish
off-white, whereas "snow" is an off-white with a pink tinge.

If I use elements that need an accent background, like a multi-row
table or a pre-formatted block inside a <figure> I'm switching from
"mistyrose" to "aliceblue", a slightly darker pink vs a slightly
darker blue. Both are still suitable for backgrounds with black text
because they provide contrast ratios compliant with WCAG AA/AAA
guidelines for normal text, large text, and UI elements.

I am nevertheless tempted to reduce the contrast ratio somewhat by
replacing black with eigengrau (hex value #16161D). The contrast ratio
will still meet WCAG AA/AAA guidelines without being quite so harsh.
31f10722 — Matthew Graybosch 5 months ago
A CAREER-LIMITING MOVE?

One could argue that including a "How to Work With Me" section or
providing information about one's preferred working conditions can
make it harder to find a good job. After all, saying that you prefer
remote and async work might tell hiring managers that I'm not a
"culture fit".

Well, "culture fit" is the final frontier of discrimination, in my
opinion. It's the excuse companies hide behind when they want to
reject a qualified candidate without providing a legally actionable
reason.

I could also say that any company that finds my preferences
unreasonable and mistakes them for non-negotiable *requirements* isn't
a company I'd want on my resume because *they aren't a good culture
fit for **me***.

Companies are going to look out for themselves and try to get the best
deal possible. I mean to treat companies as they treat me and try to
get as much as I can while giving as little as possible in exchange.
It's nothing personal; this is just business.
f2ee0a08 — Matthew Graybosch 5 months ago
REFUSING AI/SEO CRAWLERS

This is most likely a futile gesture of defiance, but nevertheless I
wish to offer scant welcome indeed to social media bots, crawlers
seeking training data for "generative AI", and SEO crawlers.

I believe the internet should be for people first, and last, and
always. Getting computer to talk to each other was a means to an end,
the end being enabling better communications between people.
f3e0ed17 — Matthew Graybosch 6 months ago
MOVED/RENAMED ABOUT SECTION

I think the new title better reflects my intentions for this section.
I have also moved it to the end of the page because, while it lends a
touch of humanity to what might otherwise be a fairly dry professional
profile, it is not necessarily of interest to people who might choose
to hire me.
4302db25 — Matthew Graybosch 6 months ago
EVERYTHING AT ONCE

The problem I have with git is that I have trouble making myself
commit a single file at a time. If I'm in a flow state while building
a website, the last thing I want to do is stop and commit changes to a
single file.

This will bite me someday, I'm sure of it.

In fact, it might already have done so, but I just don't remember it.

I could still cancel this commit, unstage everything, and stage and
commit one file at a time, but Markdown in git commit is more limited
than I remembered when I got it into my head that it would be
worthwhile to use the git commit log for blogging.

Worse still, RSS entries for git commits on Sourcehut are preformatted
to 80 characters and are thus harder to read for people using feed
readers like NetNewsWire on smartphones.

Therefore, if I want to document the scripts I used to make this
website, it might be better for me to create a separate page and
document them there. I could still make multiple commits to that page
whenever I add and document a code listing.

Yes, I think I'll do that. But not today. I will, however, give my
homepage a once-over before deploying it.
a9e5a349 — Matthew Graybosch 6 months ago
LUX FIAT

I want to try to do something different with this repository and this
version of my professional website. On this website and my personal
website at starbreaker.org[1], I have been mainly a blogger, though I
have tried to build my blog as static websites using makefiles and
shell scripts that called shell utilities provided by GNU
coreutils[2], the W3C’s HTML-XML-utils[3], and tidy[4].

I have also written shell scripts to generate RSS feeds and XML
sitemaps, that my blogs might interoperate with Google and social
media, though social media has not met me and other bloggers halfway
by consistently using our blogs’ RSS feeds to share our posts and
associate them with our profiles.

Having grown weary of Web 2.0 and wanting no part of a
blockchain-based Web3, I mean therefore to retreat to Web 1.0 while
still using HTML5 and CSS3. I will thus no longer write blog posts
directly on my website, or provide a RSS feed.

I propose instead to do any blogging I need to do for this website in
its git repository’s commit messages, ideally to document changes to
the website. If you wish to receive updates via RSS, that is still
easily done because Sourcehut[5] generates RSS feeds from git
repositories' change logs.

Since git commit messages appear to allow the use of Markdown, this
should prove a convenient and agreeable alternative to blogging on my
website or using a third-party provider for blogging.

This first commit is thus an experiment. Let’s see how it turns out,
shall we? I hope you’ll join me, at least by pulling my feed.

[1]: https://starbreaker.org/
[2]: https://www.gnu.org/software/coreutils/
[3]: https://www.w3.org/Tools/HTML-XML-utils/README
[4]: http://www.html-tidy.org/
[5]: https://sr.ht/