Posts Tagged "computing" from 2019

14 posts · Newest "computing" posts · See All Tags

Swordfighting Videogame with Two Modes

I propose a videogame with two modes. Mode 1 is played in a 3rd-person or 1st-person perspective (I think 1st-person would be more satisfying.) On your turn, you swing your sword toward the enemy's body. The motion of the sword can be precisely controlled, as can the hit location; part of the game skill is hitting a "juicy" place on your enemy.

Continue reading

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

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

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

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.

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

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

With advice from Greg McVerry, Aaron Parecki, and Ryan Barrett, I finished getting this blog set up for subscription using the `h-feed` microformat, and made other improvements along the way.

How this benefits you:

  • You can now subscribe to this website if your reader understands h-feed
  • Posts which have received updates since publishing now display their "last updated time"
  • For posts with explicit titles, the blog index displays them, making it more rewarding to manually browse the index

In addition to the above, all pages' titles now link to themselves, and each link in the blog index now has proper h-entry markup.

Continue reading

Improved Time Stamps

As of right now, the publication timestamp before this paragraph reads "Published on 2019-10-20, around 18:14:20". This timestamp is also a permalink for this page.

The dates on these posts ("2019-10-20") have been there since soon after I started this blog, but I just added the time-of-day information ("around 18:14:20") today. A machine-readable version of the time, including the time zone, has also been invisibly included in the permalink's HTML.

I did this as one step in upgrading my website so that other people can subscribe to it. If I only provided the date of publication, but not the time, someone else's reader program wouldn't be able to put my post in chronological order when compared with another post.

Continue reading

Fedoradventure

Introduction

You are Fedora, and it is a good day for lounging about the house.

Play Fedoradventure online here: it only takes a few minutes to finish.

Fedoradventure is a super-small adventure game I wrote as a gift for a friend named Fedora, who was quite pleased with it.

Ryan Quest

Ryan Quest cover image: the phrase 'MAXWELL JOSLYN PRESENTS RYAN QUEST' superimposed on a picture of the protagonist, Ryan Wright.

Play Ryan Quest in your browser.

Introduction

From 2018-10-01 to 2019-02-01, I created an adventure videogame based on the life of my friend Ryan Wright, an American who is studying game design in Copenhagen. The game has been enjoyed by all who've played it, including the titular Ryan.

  • estimated play time: 1-2 hours (too long? Try the five-minute Fedoradventure.)
  • difficulty: easy/medium. An UNDO command is included.

The game is usually played by one person, but friends have found it even more entertaining to play as a group: everyone suggests things to try next, and one person does the typing.

My friends team up to play Ryan Quest during the final beta test.
My friends team up to play Ryan Quest during the final beta test.

Continue reading