elm-oauth-middleware provides Elm client modules and a mostly-Elm Node.js server for the OAuth2 Authorization Code Grant Flow, allowing an Elm client to be authorized for requests with a usually-server-only OAuth2 provider. It requires a dedicated server machine (I use a Digital Ocean droplet), and requires some setup and learning about how OAuth2 works.

I have tested the included example with GitHub, Gmail, Facebook, and Gab.

I wrote it because Gab provides only Authorization Code Grant Flow, and I want to write an Elm client for their API, which was recently released to a small, invitation-only group of developers. I expect that API to go public in the not-too-distant future.

I recently started using Twitterrific, a Mac and iOS Twitter client. I like that it syncs between my iMac and iPhone, and its "Delete and Edit Tweet" feature, something that I occasionally do by hand in Twitter's interfaces, to fix a typo. But I'm missing a few features:

Link previews.
I follow some accounts that link to meme images, and seeing at least part of the image before clicking on it is handy.

List retweeters of a Tweet.
Twitterriffic shows a retweet count, but, unlike Twitter's clients, has no way to show the list of people who retweeted.

List likers of a Tweet.
Again, Twitterrific shows a like count, but has no way to show the list of likers.

I tweeted about the second and third issues above, and received this reply:

There are no APIs available from Twitter for this unfortunately. Must all be built from scratch.

I don't know why Twitter has no API to fetch the users who liked a post (which are called "favorites" in the API docs). You can get the posts liked by a user, but not the users who like a post. Unless you screen-scrape the web UI, which is fraught with peril, and no fun.

I hope this post will encourge the Twitterrific people to add to their clients the ability to show retweeters for a post.

When I visited my son in Tennessee in late August, he taught me two new board games that he invented. I really like one of them, which he calls Archmage, so I've been working since then on building a webapp, in Elm, to play it. I just finished that today.

Should it become wildly popular, I could be convinced to add score tracking and full game history, assuming I can come up with a business model to pay for the server, but I sorta doubt that's gonna happen.

My biggest problem was getting my Time Machine backup, stalled on "Preparing Backup...", to complete, before the upgrade. I deleted the "... Cache ..." files from ~/Library/Calendars/, rebooted, and ran First Aid on my boot and backup disks (both were fine). The backup eventually completed, but I'm not sure what I did to make it so.

I have only worked on it occasionally since getting a new full-time, paying Lisp gig, but this morning, I fixed the last known bug in Spokes, the board game that my son invented, and that I've been implementing in Elm. There are still some desirable features to add, but I'll wait until users beat down my door with requests before spending more time on it. For now, I'm going to switch my spare-time Elm programming back to Xossbow.

Spokes now has chat, voting on impossible resolution (it was too time-consuming and difficult to do that automatically), public games, and a textual game state representation that allows you to restart a saved game.

Spokes is a board game invented by my son, Chris St. Clair. I've been working on an Elm implementation of it for almost a month. It works, and there are only a few issues left before it's feature complete.

The rendering is based on Elm's SVG package, much like Kakuro Dojo. But it has a server, written almost entirely in Elm, and running on my Xossbow droplet, in Node.js. I've always considered Node.js to have a brittle architecture, but my jsMaze Amazon AWS machine just runs and runs, with nary a problem.

Check out Spokes. Click on the "Help" and "Rules" links near the bottom of the page to learn how to play, try it out in "local" mode, or with a friend or three, and let me know what you think.