Wednesday, August 27, 2014

The English word for the date a whole number of months after a previous date

Mensiversary: 15,900 google hits
Monthiversary: 65,400
Montheversary; 23,500
Monthaversary: 22,700

Google ngrams:

So mensiversary has the most history and the best etymology, but on the other hand, hasn't caught on in 200 years of intermittent usage, and is now outnumbered heavily by month?versary.  Clearly, the honorable pedant must use mensiversary.

Friday, August 22, 2014

Monday, August 18, 2014

Great news in science fiction

A lovely slate of Hugo winners - and I somehow managed to read ALL of the fiction winners, and I can enthusiastically recommend each one of them:


Ancillary Justice, by Ann Leckie (Orbit US / Orbit UK)

"Equoid" by [mefi's own] Charles Stross (, 09-2013)

"The Lady Astronaut of Mars" by Mary Robinette Kowal ( /, 09-2013)

"The Water That Falls on You from Nowhere" by John Chu (, 02-2013)

"We Have Always Fought: Challenging the Women, Cattle and Slaves Narrative" by Kameron Hurley (A Dribble of Ink)

"Time" by Randall Munroe (xkcd).

You can read everything but Ancillary Justice for free, and I will e-lend my e-book of Ancillary Justice to the first person to e-ask by e-mail (it's an EPUB). 

The quality and diversity of these resultsespecially the complete shutout of a pro-bigotry slate of nominationcombined with the all-female top winners of the 2013 Nebulas, are a breath of less fetid air after the last year or two of nasty events of sexism and abuse and enablingto be more accurate, after the last few centuries and millenia of sexism and bigotry and the last year or two when brave people have had more success protesting, publicizing, and starting to stop it.

Bonus nerditry: ready XKCD 1337 Part 1 through XKCD 1337 Part 5 and then click here.

Sunday, August 17, 2014

I really do hate computers

So my List of Songs not in 4/4 is up on the internet, which is exciting.  I put it up a week or two ago, having recovered all of the data from my old site, dating back to 2004.  In order to just get the darned thing back up this century, in my new, recoded-from-scratch Django-based website, I had to bump a lot of features down to post-launch.  Since there are 568 songs, I thought that filtering (which kindof includes searching) was the next most important feature.  Here's the before:

Here's the after:
In case you don't see the difference, it's the stuff at the bottom.  Now you can see just the songs in 3/4, or just the songs by Queen, or by anyone with "uee" in their name (at least three bands; can you name them?).  No big deal, right?  I mean, I picked the Django framework because it's one of the best, most actively developed and most advanced web application frameworks.  I was able to get my data in a nice pretty table, with alternate-row shading and pagination and sorting, and that (adding the pretty formatting and sorting) only took about four hours over two days to, in classic computer science fashion, figure out a few lines of code to save me hundreds of lines of code.  Well, filtering was a lot worse.  Bottom line: 10 hours over the last week.  Not to solve the problem of filtering, but just to figure out how to get a pre-existing filtering module to actually work.

There are three or four different ways in Django to simply and easily filter your table, and none of them is fully documented, none of them works readily with other things like pagination and sorting, and all of them are very leaky abstractions.  The typical quality of documentation is exactly where it was when I stopped contributing heavily to open source back in 2003: written by people who understand 100% of the problem, and believe they are providing 90-100% of the solution, but actually including only about 60% of the solution.  Some kind soul figured out how to get three different pre-existing features: sorting, filtering, and looking pretty, to work together, and it took me only 10 hours to figure out how to get that solution to work.  And it still looks terrible.  Yay? 

This was the first time since I really dug in to this project that I considered abandoning Django for something else but when I googled for ruby on rails table sort filter paginate IActually, I didn't see this before.  Hmm, that example actually does exactly what I want to do, and it's fully documented, and it looks decent, and it's from 2011.  Maybe when I wake up in the morning I'll switch platforms and throw out 80 hours of suffering.

Slippers, and a Shocking Discovery

This was a quick project (thanks especially to the enormous gauge from size 11 needles), simple enough to knit while doing something else but with just enough complexity to be engaging.

Also, the yarn was marked for size 10½ needles, and I have 10 and 11, and I ended up with 11s.  And that worked fine.  But it turns out that there is a shocking inconsistency in how US and UK knitting needle gauge numbers relate to the physical world:

Whereas Japanese needle sizes have a simple linear relationship, US needle sizes are anything but!  In the 6-7-8-9-10 range, going up one whole number of needle gauge increases the needle diameter by 0.5 mm.  BUT!  When you go to eleven, you go up TWO MILLIMETERS!  That's an increase of 4x in scale.  I had no idea when I was dithering between size 10 and size 11 DPNs—no joke, I bought a pack of size eleven double-points, walked half a block away, and then stood there, frozen in buyer's remorse and fearful that by investing in size 11 instead of size 10 needle to use with, let's not forget, Brown Sheep Lamb's Pride Bulky which clearly indicates 10½ I would have somehow done my projects and my knitting career a disservice, for painful minutes before finally deciding that the least idiotic thing I could do next would be to walk directly home without talking to anyone else except as needed to buy a Whoopie Cookie—I was wrestling with a two millimeter leap in size.  In any event, the slippers seem to have come out okay:

The Ravelry project.

Saturday, August 9, 2014

The songs are back!

I was delighted to send this email just now:
This is a one-time, non-commercial email that I am sending you because at some point in the last ten years you submitted one or more songs to the List of Songs Not in 4/4 that I hosted on my website,  Thanks to you—and there a whopping 98 of you, assuming nobody has changed their email address since 2004—the list grew to over 500 songs and is, as far as a cursory Google search suggests, still the biggest such list on the internet.  It was offline for the last few years, but I have now rebuilt it and put it back up.  You can see it here.
And thank you for adding all those songs!
If you would like to add more songs or edit your songs, you can log in to your old account.  Your username is ... and your password is ....
The site may very well have bugs, and I invite your bug reports.  I've added a few features: each song can now have multiple opinions about the time signature, and you can back your opinions up with notes and a link to a copy of the song.  I am working on this as a hobby, so new features may be slow to come (you may have noticed), but I can make several commitments: the data will always be available for download, at least once I get that working; I will never have ads; and I have no intention of doing anything commercial with this data.  The full list of intended changes and bugs is here.
Thanks for adding your swinging, waltzing, or otherwise unconventional data!
I got 27 bounces immediately, which means that almost three quarters of these people still have the same email address (whether they ever check it or not), so that's something.

I don't remember how long it took me to build the Songs Not in 4/4 back in 2003/2004, but rebuilding it, including creating a new website on a new platform, learning the basics of Django, setting up hosting, and all that other good stuff, has taken at least 70 hours over the last three months.  That includes some of the time spent blogging about the process, and by blogging I mostly mean complaining.  I read this recent article, which summarizes itself as 
I had contradictory thoughts in response.  Certainly this was my experience, that I spent more time wrestling with tools than coding.  But most of the tools I was wrestling with were part of the programming, not the toolchain.  And everything in the toolchain, at least the toolchain I was using, did something I needed.  The claim "I want to program and not bother with bug tracking and deployment" is perilously close to the whine "I just want to do the most fun stuff and not bother with the less fun parts."  But the value of programming is solving peoples' problems, often people other than oneself, and bug tracking and scalable deployment and 508 compliance (accessibility, e.g., but not just, for blind readers) are all ways of solving bigger problems for more people.

A more sympathetic reading could be, "I want to program but these tools that are supposed to make it easier for me to program are more trouble than they are worth," and that's much harder to judge.  With this project, I really struggled with Django and its many libraries, even though that's exactly why I picked it.  This is perhaps the open-source version of complaining about the crummy vendors: the open-source community has many different solutions to your problem; none of them do everything you want and half of them are abandoned.  I tried to put breadcrumb-based navigation into my Songs, and tried and gave up on two different packages; one conflicted with the CMS package I'm committed to, and I already forgot what was unsuitable about the second.  I ended up hand-coding a few links.  But that didn't totally get it the way I want, so sooner or later I have to go digging through fifteen different packages to see which ones both solve my problem the way I want to solve it, and are compatible with the other packages I've committed to.  Of course the people writing and providing these free packages are doing great work, but the system as a whole falls short of being satisfactory.  Since we are almost all doing the same stuff: websites, lists of data, navigating; why is it so hard to find a common solution that is easy to use and does things in a generally accepted best way?

Anyway, go get your records out and start tapping the beats and then come to my site and add your funky music.

Tuesday, August 5, 2014

The problem with gay marriage?

I found myself in the mall yesterday and wandered into a Bose store to make sure that the QC15 was still the top-of-the-line noise cancelling headphone.  There's a QC20 now, but it's an in-ear thing, not over-the-ear, so even though it's five higher it's not really topper-of-the-line.  Plus it costs the same amount, so it can't be better.  My worry, of course, is that Bose will come out with some new model that is directly comparable to what I have but newer, and therefore better, and that this will cause my headphones to be unsatisfactory, even though they will not physically have been altered in any way by the release of a new product (unlike, perhaps, the iPhone) and they are satisfactory right now.

Perhaps this is the model of operation that Santorum had in mind?

Friday, August 1, 2014

Pop Quiz


a. It doesn't matter whether a cat is white or black, as long as it catches mice.
b. A socialist train coming with a delay is better than the capitalist one that comes on time.
c. I wonder if that cat can outrun that train?

Customer service and power

I called AT&T to add internet:

AT&T: (paraphrasing) "Hi, I'm [Chad], how can I provide you excellent service today?"

Me: "Hi, my name is Joel and I'll be recording this call for quality purposes."

AT&T "Okay, uh, I, I wouldn't be able to assist you if you are recording the call; I'd have to have a manager contact you back because we're not allowed to have people record our calls here."

Somebody call David Brin!  Since California is an all-party consent state, that was pretty much the end of that call.  I did ask for a manager to contact me back, but six hours later that hasn't happened yet.