November 2019

23 posts

Before this morning, I had two barebones Emacs commands which I used to open my website in a browser. One opened the index page in the build folder, and one opened the index page on the deployed site.


(defun mj/browse-my-website ()
  (interactive)
  (browse-url "https://www.maxwelljoslyn.com"))

(defun mj/browse-my-website-locally ()
  (interactive)
  (browse-url site-build-folder))

Since I frequently used the "browse-locally" command to check how the site looks before deploying, but rarely used the command to browse the deployed site, I turned the latter into an option triggered by passing an argument.

More substantially, browsing the index page is still the default, but if I'm viewing a webpage's source in Emacs, the command instead browses that page on the (local or deployed) site. This is usually what I want when checking pages.

Continue reading

Update: Material below the (old) marker is incorrect. I'm going to go live in a cave and never touch a computer again, but before I pack my bags, here's the real scoop.

A person mention is the act of linking to someone's homepage when mentioning them in post content. It's worth having a special name to distinguish homepage links because it's a common IndieWeb practice to handle WebMentions sent to a homepage differently from those sent to other paths on the site.

Continue reading

Hey, Chris, the layout of your main page is slightly borked. It looks like the problem is related to some of the category names being longer than others. See image below, and good luck fixing it. [2019-12-03: Chris fixed this problem a few days ago.]

A picture of the layout of boffosocko.com as of 2019-11-21.
The 2019-11-21 layout of boffosocko.com's category-navigation interface.

Workout Weight Progression

Novice weightlifters are typically encouraged to use one weight until they can perform a certain number of reps, then go to the next-biggest weight and repeat. This straightforward approach, called linear progression, is the standard recommendation for those new to weight training.

Continue reading

Presents from Prengubi

On the page of writing where I discovered Prengubi Cjiiiifgh, I found some strange stuff.

  • The Weedler's Promise
  • The Friendler, The Seedler, the Feedler, the Deedler
  • Pheasant Peasant
  • Living Gold
  • Sumweyer Ells: home of the sexy fox people (definitely not related to the home of the Khajiit.) Do humans skin the sexy fox people to create the highest-quality fursuits? Yes.

A Translation Interface

Two windows next to each other, one of which shows usage instances for the word under, or around, the cursor.

Part of the challenge of creating an interface to help with Chinese translation lies in defining the extent of a word. For example, when a verb and an object (e.g. 吃东西 ), is combined with a two-character complement (e.g. 起来), the result, 吃起东西来, does not contain "起来" as a substring, because two-character complements get split up to follow both verb and object. Any digital dictionary or reference system concerned with usage examples will have to account for this fact of Chinese grammar, and contain the knowledge that, despite the results of affixation, this can be considered an occurrence of the "起来" complement.

Continue reading

The website should look much cleaner, thanks to some CSS upgrades I just made.

I thought I also had it set up better for small screens, but I checked on my phone and it's still mostly just a shrunken version of the regular website. Woops. The redesign will continue. [2020-05-11: I've since fixed this. The website now adapts itself to your device's viewport.]

I've coded a new feature for the blog: "previous" and "next" links! As you can see below, each post now links to its predecessor and/or successor. (IndieWeb people, those links have rel="prev"/rel="next" classes on them for machine consumption.)

Further improvements will include post tags, on the index and on individual posts; I also want to display approximate wordcounts for each post. And of course, I'm still missing comments (but that will take more doing than the other two.)

Major formatting changes coming through! The goals are to make the site more pleasant for mobile users, and fix some long-standing layout bugs.

If you see any ugliness, please be patient; the Complaints Bureau will be hearing grievances in February 2023.

Yesterday, I learned the basics of setting up a Linux virtual server on Amazon's "Elastic Compute Cloud" (EC2) service. After some false starts with other hosting providers, the developer documentation for EC2 felt blessedly straightforward.

Server-side application development is a new programming paradigm for me. I've written a lot of programs, but nearly all of them were designed for me to consciously start running on my own computer. I've created material on multiple websites and blogs, but until now I've relied on free blog hosts or Amazon S3, and have never run a server to handle web traffic.

Continue reading

Review of Growth of the Soil

Full StarFull StarFull StarFull StarEmpty Star

Rough subject matter (the unforgiving life of Norwegian frontier settlers), gently unfolding. Worth your time.

Terrible UI Design in MacOS Chinese Input

MacOS Chinese input allows you to cycle through the tones with TAB. I just discovered this after years of (begrudgingly) using this input method. Harrumph! They could have put the tones on the number keys to kill two birds with one stone:

  1. Number -> tone is a straightforward, well-known mapping, so I wouldn't have had to discover this feature at random.
  2. It would have forced them to find a smarter, more ergonomic way of letting me pick candidates, rather than having to lift my fingers from the letter keys to identify every single character I want to use.

Simple but Uncommon Chinese Characters

There are Chinese characters which are structurally simple, but not in common use today.

A perfect example is 屾 shen1, a literary term which means "并列的两座山" ("two mountains side by side".) This is one of relatively few characters that is actually ideographic, i.e. has a shape depicting the real-world concept it represents. This is because 屾 shen1 is made up of two side-by-side copies of the character for mountain, 山 shan1. Two mountains side-by-side in the character; "two mountains side-by-side" for the meaning.

Below are other characters which have piqued my interest.

Continue reading

I'd like to represent my Chinese name in the h-card markup that makes this website's authorship information machine-readable. How should I do that?

Some time later:

The answer seems to be "use the p-nickname property." The wiki documentation of that property clearly states that it can be used for a handle or alias. I don't like that "nickname" is the microformats keyword for this purpose: I prefer "alias," since all nicknames are aliases, but not all aliases are nicknames. However, I'm glad to at least have solved my problem.

(Another scenario where using this property would be useful: a European friend named "Juerg" spells his name "George" when communicating in English. On his business cards, he writes Juerg 'George' Lastname; on his website, he could mark up the 'George' with the p-nickname property.)

Turning Off Lisp Semantics

The reason Lisp is special is because you can TURN OFF semantics.

(+ 1 1) is pure form. (+ 1 1) is syntax. (+ 1 1) is a syntactic expression: it has structure. But, until we evaluate it, it doesn't have meaning. [It might appear to be "add one and one," but in a programming language focused on bits and bytes, (+ 1 1) might well be the command to put together two bits, resulting in 11.]

In all the Lisp-family languages I know of, because they are programming languages, and by default the programmer expects to evaluate syntactic expressions, the default notation for an expression which will be evaluated is simpler than that for one which will not be evaluated.

Continue reading

Today I upgraded my website publishing software. From now on, new articles (individual pages which are longer and less time-dependent than blog posts) will automatically come with a date and time of publication. I'll be manually adding publication dates to prior articles over the next week or so.

Along the way, I fixed a problem I was having with adding "time last updated" to pages and blog posts. I had to manually position the mouse in the right spot before running a command to add the current time and date. Now all that is done automatically with one command, mj/insert-webpage-update-time. Having this command written also puts me 90% of the way toward the next logical step, which is automatically setting the "time last updated" every time I save a file for the site. I'll get to that in the future.

Poetry Exercises

If you want real poems, go here instead.

This page collects my responses to the poetry-writing exercises set by Stephen Fry in his book The Ode Less Traveled.

The entries here are unfinished, unpolished, unvarnished, and unloved -- but they are important. They are not just the first step in the creative process: they are that process.

Exercise 1

2019-11-01

I must remind you that these are not even drafts -- they are scraps, not even fit for animals to hear. Here are the results from Poetry Exercise 1: "Write ~20 lines of iambic pentameter."

  1. Today I have to buy a pair of pants
    I have to buy gray pants today — one pair
    The pair of pants I buy in gray today
    Will be the pair of gray pants that I wear
    

Continue reading

Review of The Ode Less Travelled

Full StarFull StarFull StarFull StarEmpty Star

I like this book so much that I've bought copies for friends. Ode is a practical manual for improving one's poetic craft. The book expects you to complete exercises as you go. To not do these exercises would be to entirely miss the point. I've uploaded my silly, crappy responses to some of them my Poetry Exercises page.

Scope of Variables in Inform 7

Consider this snippet of Inform 7 code:

To improve the mood of (character - an animal):
    if the mood of character is less than friendly, now the mood of the character is the mood after the mood of the character.

I am not sure whether or not the statement "the mood after the mood of the character" wraps around. That is to say, I am not sure whether the above code would "improve" the character's mood from the best one possible to the worst. I would hope it doesn't do that, but I'll have to investigate.

The if statement above can be translated into pseudo-Clojure as follows:

Continue reading

The Bunghole

A parody of William Blake's "The Tyger".

Bunghole! Bunghole! Clenching tight,
On the toilet, in the night.
Curse you, bowels! Set me free!
Has my poo no place to be?

In a distant land of glee—
Somewhere constipation-free—
Man may poo most joyfully.
He knows not of agony.

He knows not the price we pay:
Pants 'round ankles, we inveigh,
Grunting, swearing, moved to pray,
Pooing in a toilsome way.

For what reason, in God's grace,
Did He make man squat in place,
Wasting time, without a say,
On a poo's extended stay?

What immortal hand on high
Moved to make our poo so dry?
Whither Bunghole and his fee?
Whither constipationry?

Bunghole! Bunghole! Clenching tight,
On the toilet, in the night.
Curse you, bowels! I don't see
What I've ever done to thee!

Here I go, testing out a minimal IndieWeb reply context.

Damn, it's not working. If you caught this post before I updated it, you may have seen a stupid link to "www.maxwelljoslyn.com/notes/2019/11/01/1/www.maxwelljoslyn.com/blog/2019/10/31/1".

I'll go after the problem when I have time. At the very least, I do know the blame ultimately lies with how relative and absolute hyperlinks are handled by my blogging software.

Naughty software! I will punish it at once.