Michael McClimon

RSS

Illustrator sucks, and everything else sucks worse

April 10, 2018

I learned Adobe Illustrator in graduate school, and have used it to generate hundreds and hundreds of musical examples over the years. I used to get it for free from IU as part of the (excellent) IUware program, but then I graduated, and my gravy train ran out.1

I still need to make examples occasionally, either on contract as favors to other people (read: Carolyn), but I sure as hell don’t want to pay a monthly fee to use Illustrator. So I bought a copy of Affinity Designer, which is … fine. Except that it doesn’t do a lot of things I’d come to expect from Illustrator: you can’t make a line with an arrowhead on the end of it.2

So earlier this week, Carolyn says “hey, can you make me a little graphic for my signature?” In Illustrator, this is really easy: scan the signature, live-trace it, and clean it up a bit. So I fired up Affinity Designer, searched for the live-trace feature, and couldn’t find it.

And indeed, it seems, somehow, that this vector drawing program doesn’t have a tracing feature. Some searching suggests that I could do it in Inkscape could do it and import the resulting SVG, but that seemed tedious. Some further searching suggested that Inkscape uses the potrace algorithm for tracing, and that it’s better than Illustrator anyway.

Aha! We’re off to the races now.

$ brew install potrace
$ magick convert signature.pdf signature.bmp
$ potrace signature.bmp

Open up the resulting PDF and find a beautifully traced signature, with no noise. Converted it to a PNG in Preview, emailed it to Carolyn. Job done.


  1. I actually paid for a subscription to Adobe Flash for a year or so in 2016 to maintain a bunch of examples I originally made in 2011. Then my MTO article came out and I cancelled that nonsense immediately.
  2. Yes, you read that right.

I'm leaving academia (for now)

April 6, 2017

Short version: I’m taking a job at Pobox doing software development, and moving to Philadelphia after the semester ends. I’m not giving up on music or music theory, but I won’t be teaching next year. Details after the jump.

Backstory

I think most of the people that read this blog are music theorists or people that know me personally. If that’s not you and instead you’re a programmer that’s found themselves here, you might find this other post more enlightening.

I have a PhD in music theory.1 While I was doing my PhD, I happened into programming as a way of getting out of taking French. (At Indiana, you can take either two foreign languages or a foreign language and a research skill, and my knowing computers is much more useful than my knowing French.) This has led to any number of side gigs: I’ve done various music-related programming things for Music Theory Online, the SMT, CHMTL, and a handful of others, and it helped pay the bills in grad school.

I’ve always kept one eye open for interesting programming jobs, and so when this job came open at the beginning of March I jumped on it. (Yes, academics, you read that correctly: I applied for the job in the second week of March and accepted it the first week of April. On the same day I accepted, I got a rejection letter for an academic job I’d applied to in September.) I’m really excited, and I’m ready to dive in to a new adventure.

FAQs

(This is an announcment post, so no one has actually asked any questions, but these are questions I can imagine people having.)

What is Pobox? Pobox is an email company; I’ve been using them for my personal email for years. As of 2015, they are a service of FastMail, which is another great email company headquartered in Melbourne, Australia.

Why did you want to work for Pobox? My favorite programming language is Perl. In learning Perl a while back, I learned that Pobox used Perl, and in fact contributes a lot to Perl development.2 When I started to consider looking for programming jobs, I had always thought “My ideal programming job would be something like Pobox,” and as it turns out that’s come to pass. Pobox and FastMail’s values also match really closely with my own, and all the people seem really great. (There are a lot of other reasons too, but that might be another post.)

Don’t you like music theory? I sure do! I spent a long time in school for it. I also really like programming. If I’d discovered it earlier, I might have wound up here sooner.

Do you regret getting a PhD in music theory? Thankfully, not at all. I didn’t go into debt to get the degree, and without it I probably never would have happened into programming in the first place. I have lots of close friends I met through theory, and music theory has paid the bills for nearly a decade now.

Are you leaving teaching forever? I’m not sure. I’m leaving it for now. If it turns out I can live a happy, fulfilling life without teaching chromatic harmony, then great!

Are you leaving academia entirely? No! I’m going to keep up my work with MTO and SMT, and I’m planning to go to this year’s SMT meeting in Alexandria (especially since it will be close!). I’d still like to do some research, though I’ll probably take a break for a bit while I get used to my new life.

Wait, didn’t you just publish an article? I did, last week! You can find it here: Transformations in Tonal Jazz.3

Are you just doing this because you couldn’t find an academic job? No. Although the academic job market can be pretty dismal4, as I mentioned above, I’ve always kept an eye out for interesting opportunities elsewhere. What I really love (and am good at, I think) is learning new things: programming offers a lot of new things to learn, and Pobox in particular offers a lot of opportunity for learning more about the field, while contributing to it at the same time.

Final thoughts

I’m excited to start a new chapter in my career and in our life.5 We don’t yet have all of the logistics worked out (especially moving again with a blind cat), and there is lots to do between now and the end of the semester. If you have more questions, I’m happy to talk! The easiest way to find me is either on Twitter (@mmcclimon), or via my email address, which is proudly hosted on Pobox!


  1. Actually, I have three degrees in music theory. My standard first-day-of-class joke is that qualifies me to do very little other than teach music theory to other people. As it turns out, that’s not entirely true.
  2. The erstwhile pumpking, Rik Signes (rjbs), is the person who hired me.
  3. This is more of a plug than a real question, I know.
  4. You knew that already.
  5. One more FAQ. Thankfully, the job pays enough so that Carolyn won’t have to do part-time adjunct work; she’s going to focus on writing her dissertation.

A new job at Pobox

April 6, 2017

I’m taking a Perl development job at Pobox, and joining the Perl community after a long time lurking in the shadows. Details after the jump.

Who am I?

(If you’re a music theorist or some other kind of academic, you might find this other post about leaving academia more interesting.)

My name is Michael McClimon; my education is all in music theory but I’ve been programming as a hobby and side job since graduate school. Perl is my first love when it comes to programming languages: I first learned it in grad school as a way of getting out of taking French.1 I’ve been involved with programming on the side in a handful of music-related projects: I’ve done things for Music Theory Online, the Society for Music Theory, Indiana University’s Center for the History of Music Theory and Literature, and a handful of other things too.

I’ve spent the last few years at my alma mater, Furman University, teaching music theory. Even still, I’ve kept an eye out for interesting programming jobs, so when the Pobox job came open at the beginning of March I jumped on it. I’m really excited, and I’m ready to dive in to a new adventure.

Pobox

Pobox is an email company, and since 2015 has been a service of FastMail. It seems like most people in the tech community have at least heard of Pobox or of FastMail, and certainly people in the Perl community are familiar with them. I’ve used Pobox for my own email for years now, and recommend them at every chance I get.

When I was working in academia, I always thought that a job like Pobox was my ideal programming position: their values line up with mine, they’re a company with a real business model that has been around for longer than six months, and they use Perl. And not just that, they contribute actively to Perl development; the technical team at Pobox is headed by the former pumpking, Rik Signes (rjbs). I saw on Twitter that they’d posted a job listing, and knew I had to apply.2

Final thoughts

I’ve not really been involved with the software or Perl communities, but I’m ready to start. (All of my previous conference time has been spent with music theorists!) I’m looking forward to meeting and working with more people in the programming world, and to start this new chapter in my career. I’ll try to blog more with updates (and may occasionally post some technical content), though I make no promises. If you want to chat, I’m happy to talk! The easiest way to find me is either on Twitter (@mmcclimon), or via my email address, which is proudly hosted on Pobox!


  1. I learned Perl in 2011, which is admittedly a little strange, but honestly the O’Reilly Perl books were better than the O’Reilly Python books.
  2. I’m perhaps most thankful it was posted in March and not in October, since I can only really leave my teaching job at the end of an academic year!

2016, by the numbers

December 31, 2016

As they say on Marketplace, let’s do the numbers.

1. Degree earned. My PhD was officially awarded in January of this year.

2. Conferences attended. Music Theory Southeast (at Kennesaw State, in March) and AMS/SMT in Vancouver.

4. Countries visited. Canada (see above), plus a European adventure with Carolyn in June, featuring Germany, Belgium, and the Netherlands.

20. Books read. See them all here.

~35. Complete listens of one of the Schubert song cycles.

50.2. Longest bike ride of the year, in miles. See it here.

53. Individual students taught.

~250. Podcasts listened to. (A very rough guess.)

366. New York Times daily crossword completions. (And I only blatantly cheated on one, when I flew to Germany and almost broke my streak.)

~1000. Papers graded. I really don’t want to know this actual number.

1455. Miles on the bicycle. (This figure is probably low.) That’s over about 116 hours, and with a total elevation gain of roughly 2 Mt. Everests.


2016 was a pretty lousy year in a lot of respects, but here’s to a new one.

Footnotes for blogging

December 15, 2016

As I said at the end of a previous post, I had planned to figure out the footnote formatting for this blog. I am an academic at heart, after all, and if there’s one thing academics love, it’s footnotes.1 After some finagling, I’ve figured out something that works for me, and since the people2 are clamoring to know my secrets, here they are.

As I’ve mentioned, this site is now generated using Hugo, rather than Jekyll, which I’d used in the past. One of the nice things about the Markdown engine Hugo uses (blackfriday) supports Multi-Markdown footnotes (see here for details). By default, this inserts the footnote reference in superscript, and then a horizontal rule and the content at the bottom of the post.

That’s all well and good, but it’s not quite fancy enough for me. I’ve always been enamored of the footnotes on Marco Arment’s blog, so the obvious solution was to steal them. He uses something called bigfoot.js, which is mostly good.3 The bigfoot defaults aren’t great, though: the three dots are opaque and hard-to-understand, and by default it removes the footnotes from the document.

To get around that, I had to modify a bunch of the CSS, and change the button markup to get rid of the three-dot thing. Here’s that code (the button markup is gross, but such is life writing JavaScript):

.bigfoot({
    actionOriginalFN: "ignore",
    activateOnHover: true,
    deleteOnUnhover: true,
    numberResetSelector: "div.post-content",
    buttonMarkup: (
        '<div class="bigfoot-footnote__container">' +
        ' <button href="#" class="bigfoot-footnote__button" rel="footnote"' +
        ' id="{{`{{`}}SUP:data-footnote-backlink-ref}}"' +
        ' data-footnote-number="{{`{{`}}FOOTNOTENUM}}"' +
        ' data-footnote-identifier="{{`{{`}}FOOTNOTEID}}"' +
        ' alt="See Footnote {{`{{`}}FOOTNOTENUM}}"' +
        ' data-bigfoot-footnote="{{`{{`}}FOOTNOTECONTENT}}">' +
        ' {{`{{`}}FOOTNOTENUM}}' +
        ' </button>' +
        ' </div>'
    )
});

And that’s all there is…tada! If you want to know more, you can see the source for this site at GitLab.


  1. Citation needed.
  2. Just Bryn, really.
  3. Warning: this site is bright red and hard on the retinas.