Mimsy Were the Borogoves

Mimsy Were the Technocrats: As long as we keep talking about it, it’s technology.

42 Astoundingly Useful Scripts and Automations for the Macintosh

Work faster and more reliably. Add actions to the services menu and the menu bar, and create drag-and-drop apps to make your Macintosh play music, roll dice, and talk to you. Create ASCII art from your photos. There’s a script for all of that in my new book, 42 Astounding Scripts for the Macintosh.

New comments system live for Mimsy!

Jerry Stratton, January 31, 2012

This weekend I enabled the new comments system for all of Mimsy. Over the next several days you’ll see the JSKit/Echo code disappearing in favor of the new local code. The code is very light: only a tiny, unnecessary JavaScript snippet and a handful of cookies. Both JavaScript and cookies are optional.

I’ve been using it for several months on the much-lower-traffic The Biblyon Broadsheet. As I wrote there, it’s a simple system: no logins. If you have cookies turned on it will remember your most recent name, URL, location, and email (all of which, except for name, are optional). See The Ten Commandments for the rules. This much simpler system is based on my experience using something similar at the Ace of Spades HQ.

Emails are private; they’re so that I can contact you if I decide I need to. But you can leave it blank if you don’t want me to be able to. This is better than JSKit/Echo, where the only way to contact you that I could find was to leave another comment on my blog.1

The only somewhat unique requirement is that you take some time between writing and posting to preview. It will tell you how many seconds to wait before posting, and if you have JavaScript turned on it will count them down for you.

I have been planning on switching to a custom comments system ever since I started using JSKit; it was always a temporary solution. I don’t like using web tracking services, which is what JSKit/Echo really is: it’s a way for Echo to track people’s movements across different sites. That’s why you don’t currently see Google Analytics on my pages either: because the code is loaded from Google’s/Echo’s servers, Google (in the case of analytics) and Echo (in the case of comments) can track your movement across any page that uses that code. I’m just enough of a privacy nut that that bothers me.

Because I have access to the database, I’ve got it set to tentatively approve new posts rather than wait for moderation as I did with JSKit. If something looks like spam, or if the system sees something else odd going on (for example, multiple posts from the same IP over a short period of time) it can tentatively disapprove new posts. In each case, I have a simple database backend (in Django) to give me an overview and confirm or revoke the decisions made by the automated system.

My hope is that this will make it easier for me, because I’ll be able to detect the most egregious spammers. Knock on wood, much of that hasn’t been necessary during the test run on The Biblyon Broadsheet, I suspect because the built-in delay confuses most (but not all) comment spammers.

Some pages will be closed to comments automatically: most if not all of the “editorial” posts, for example, will close once they’ve dropped off of the home page. The rest will remain open indefinitely, because they, especially pages on code, actually end up needing more comments as time goes by.

All of the JSKit/Echo comments as of the time of the switch2 have been transferred over. That they made it easy to get the data out as an XML file is the main reason I was willing to use them.3

  1. In theory, now that I’ve got access to the database I could also message you directly when you visit any page in the blog, as long as you’re using cookies. But I don’t have anything like that set up yet.

  2. Echo seems to allow people to delete their comments, and any deleted comments, while I have them in old backups, have not been transferred.

  3. If you’re interested in how I did that, see Parsing JSKit/Echo XML comments files.

  1. <- Homesteading the moon
  2. Traveling outlets ->