Recurse as needed


Staples “Brighton Professional” brand hand soap has, like most commercial products that have any sort of chemicals in them, a Material Safety Data Sheet stating important stuff like a list of the chemicals in it, so that it’s documented what chemicals are in the workplace. It also includes First Aid information, just because one wants every product to have clear instructions about what to do if swallowed or whatnot.

One of the First Aid instructions is “In case of skin contact”. So, just in case this hand soap for some reason ends up touching your skin, here’s what you should do:

“In case of skin contact : Wash with water and soap as a precaution”

Quote of the Day


I am starting to think that the right way to think about blockchain and cryptocurrencies and tokens might be the way you’d think about stocks, if stocks had just been invented. Here in 2017, it is uncontroversial to say that the invention of limited-liability joint stock companies utterly changed how humans organized their economic activities, and had huge impacts on economic productivity and on society as a whole. But it is also fair to say that the first few hundred years of stocks were mostly fraud and irrational speculation. Similarly with cryptocurrencies and initial coin offerings, it is possible both that proponents’ grandiose claims about how they will transform finance and society will turn out to be true, and that most crypto stuff in our lifetimes will be nonsense.

— Matt Levine, “Money Stuff”, July 11, 2017

GUID as a Service

I’m pleased to announce the creation of GUID as a Service, bringing creation of Globally Unique Identifiers into the “cloud” era. This has been a fun hobby project to learn about AWS API Gateway and Lambda, and so I figured I’d make a little thing and share it with the world, just because I can.


After many many years having my domain happily hosted by GeekISP, I’ve taken the plunge and moved to hosting on Amazon Web Services. While it’s a bit more work having a whole virtual server than just using shared hosting (particularly for email, as apparently only masochists run their own email server nowadays), it’s the kind of infrastructure setup I freakishly enjoy. This web site and my email now support TLS (thanks to Let’s Encrypt), IPv6 (finally catching on in the world after well over a decade of “coming soon”), and all data more-or-less in my control (on Amazon’s systems, but encrypted in transit and at rest).

So, I thought I’d add a post for the first time in years. My life seems too busy now to post more often, but one never knows when the next post might come.

On buying a car

It’s finally time. After many years of being a one-car family, with kids and needing to go more and more places, it’s finally time to become a two-car family. Jessi worked very hard and finally got her license (hooray!), so then it was time for me to go car shopping, as she would primarily be driving the minivan with the kids, and I’d get a new (or at least new to me) car for my daily commute. Taking a large vehicle (and thus mediocre gas mileage) with just me in it all the way to work wasn’t making a lot of sense anyway.

So, I go car shopping. I’m pretty overwhelmed with the number of options. New versus Used, different brands, different models, and plenty of trims, packages, and options within each model. It’s a fairly terrible process. I think that Planet Money’s podcast episode on the subject pretty much covers it. For a variety of historical reasons that may have made sense at the time but don’t make as much sense now, one can’t go to a new car retailer, but one has to first select a brand that one likes, and then from there compare the options. Somehow, I can’t just pop onto Amazon, filter by features, select what I want, and put in my credit card number (or send Bitcoin) like buying pretty much anything else works.

There’s no real purpose to this post; I’m mainly just ranting. All the people I’ve worked with have been very friendly and helpful, but as with many sales-related things I feel that upon doing just a little research ahead of times made me more knowledgeable than the sales reps, at least about the parts I care most about. (And it’s likely that what I care most about isn’t what most people care most about.) I don’t think that the sales reps did anything wrong or even that there was anything that they could have done better, I’m just so much more used to being able to buy things without a person involved that it’s jarring to involve one, especially when I’m not sure that they added a whole lot to my experience. Perhaps eventually, the industry will catch up.

Ford Focus Stock PhotoBut I have selected a “2014 Ford Focus SE with SFE”, which is being ordered and I should have “in 4–6 weeks”. I’m sure I’ll be very happy with it, and it should get twice the mileage I get in the van, but I sure wish that the whole car buying experience had been less annoying.

Jelly no Puzzle

I have less time for video gaming than I used to, as I have kids and all, so I’ve been really enjoying puzzle sorts of games. As much as I love sweeping RPGs with tens of hours of plot, it’s a lot easier for me to spend 10–30 minutes here and there on a puzzle or two. That’s part of why I liked Braid, which I recommended when I last posted a year ago (yipes!), and it’s the same way I’ve been really enjoying Jelly no Puzzle. I finally finished it today, and I think it’s taken me months of picking it up off and on for a few minutes at a time.

It is incredibly difficult to solve each puzzle, yet the game has very simple mechanics. Each and every level requires you to think in a new way. It’s a perfect way to unwind, if you like impossibly difficult puzzles, and I highly recommend it.


Braid is an awesome work of art and game. I know it’s a few years old at this point, but I don’t have the time for much gaming nowadays. But Braid has been on my radar basically since it came out. It made me want to buy a 360, though eventually it came out for PC, and I played the demo and loved it. A couple weeks ago, I finally bought it. It’s the perfect kind of game for me, since I can play for just a few minutes at a time, solve one puzzle, and put it on hold until I next get a few minutes.

I have now completed it (in the sense of getting all the puzzle pieces and getting through the ending), though I wouldn’t say that I’ve beaten it. The plot is… a fascinating statement that I haven’t completely worked though yet. The gameplay is astoundingly good.

Please, no spoilers here. Of any sort whatsoever. Thank you.

Moderation of a different sort

I’ve been the moderator of Charlton’s Town Meeting for the past three years, which has been an enjoyable experience. But I was asked to moderate a meeting of a different sort on this coming Saturday: a candidate debate for the local candidates of the Town of Southbridge. As I told the Southbridge Evening News, “local politics is important,” and I look forward to being an impartial party helping the people of Southbridge choose their leaders.

Adventures in migrating from Opera to Chrome and Firefox

I’ve been a loyal user of Opera since version 5. Back then, they were the innovators of features like tabbed browsing, mouse gestures, and excellent support for web standards. I even paid for it back then (as it was on the “shareware” model) since it was just that awesome. I’ve been using it ever since.

Sadly, over the past couple years, the quality has definitely gone down. It may have started roughly around the time Opera got a new CEO, though I’d be hesitant to place the blame completely there. It crashes much more often. It likes taking up CPU for no discernible reason. The next version, Opera 12, will be removing many features that make Opera distinctive, like built-in BitTorrent support and their awesome Opera Unite idea. Opera just doesn’t seem to be the cutting edge innovator that they used to be. (Or perhaps, they’ve been so busy trying to innovate that they lost their core focus on making an awesome browser.)

Continue reading