Category: WordPress

  • Exploring custom blocks from a PHP-centric developer UX point of view

    I’ve spent the last 8 months telling anybody I talk to about custom WordPress block development that they were way less scary and much easier than I thought they were going to be as somebody with minimal React experience, and that achieving a 1:1 editor experience where you manipulate directly in the content area instead of metaboxes or panels really comes alive when you reuse the same markup and CSS from the front-end and leverage the React components the block editor ships with. Because of that, I think a big game-changer for adoption and shifting thinking would be to find a way to unify templating between the front-end and the editor, essentially swapping the places where you output content with the corresponding editor component.

    So what had happened was… I was once again going on and on about this to Mark Jaquith, who blessedly seems to enjoy walls of text from me about programming puzzles, and it turns out he’s been thinking about the same thing as he gets into block development. A weekend later, and:

  • Updating a WordPress plugin with a publish metabox field for the block editor

    Many years ago (October 2015, to be exact) I wrote a small plugin that allows you to add a note when updating a post, intended as a way to describe what was changed in that revision. For the developer set, it’s kind of like commit messages for your WordPress post/content updates. It was created to fill a need on various sites, such as the handbooks, but it seemed generally useful so I released it as a public plugin. After one more update in August 2016, it just sat there, usable and useful but without any attention. Until this week.

    I stream my open source work semi-regularly, and decided that working through how to adapt an old plugin to the block editor (2 years late) would make for a useful exercise. So I did that, for almost 4 hours! But that’s not how long it takes to do this – the base work of this really took about 45 minutes, with the rest of the time spent chatting and chasing a bug related to revisions. So, for this post I’m going to explain the process of achieving the final code, first demonstrating what most people will need, then what I actually did because of some specific UX needs, and then dissect the revision bug and things I tried that didn’t work out.

  • Code is Poetry: A Musician’s Tale

    Code is Poetry: A Musician’s Tale

    I gave a deeply personal talk last weekend at WordCamp San Francisco on the intersection of my identities as musician and web developer. I’ve mostly given technical talks of a practical nature, but have been mulling over this topic for some time. As with anything, watching myself “perform” is difficult (could somebody please smack me the next time I say “right?” or laugh on stage?), but I am really happy with how this talk turned out. There are a lot of things that really came together well – an audio clip, a commissioned piece of animated art, and photos.

    Check out the video embedded below, or you can also watch it on

  • Unintentional destruction

    At WordCamp Europe, Matt Mullenweg got a question about the role of women in the WordPress community. Before he could answer, somebody shouted from the audience: “We love women!” I was gratified when Matt said “come onnnnn”, but disappointed that it was lost in the sea of applause for the preceding exclamation.

    The comment from the peanut gallery was later addressed in Matt’s response: that we should think about the effects our words and actions may have on the comfort and security somebody may have with a community. This isn’t the first time in history that comment has been made – if anything, it’s one of the most-used responses when a male-dominated field has its maleness pointed out. There is very little chance that the commenter had any intention of being destructive – he probably thought it was hilarious (and I’m sure lots of people also thought it was) and accurate. In this instance, we also have the added layer of cultural and language differences among the audience.

    Without realizing it, this guy did two things with those three words: made anybody whose sexual preference isn’t women feel excluded from “we”, and reminded women that their presence isn’t desired because of skill and merit, but to be potential mates for others. That doesn’t mean all people in those categories felt that way, but that is still the message it sends.

    This is really unfortunate, and again, likely unintentional. When it’s unintentional, it can be hard to address. Accusations of being sensitive fly around (if being sensitive means understanding how actions actually have consequences, then you know what, hell yeah I am), and defensive reactions remind others that it isn’t their feelings that matter, only the intentions of the originator, leading to further hurt and less listening.

    It’s so predictable, I can even hear it now: “Stop making that guy a villain! There is such a thing as platonic love!” But just as this person didn’t intend to harm, humans are typically unintentional with their feelings. I can try to logic things away all day: I’m established in the community, I’m a very confident person, I know lots of men who have my back, I’m not a single lady (as if that really matters – that’s how engrained the importance of being a mate is), I too love having more women around. But the logic doesn’t prevent me from suddenly feeling uncomfortable and not respected. I didn’t intend those feelings any more than that guy intended me to have them.

    Let’s be better. As an open source community, I do believe that the WordPress one is generally friendlier, more welcoming, and more diverse than many others. But we can’t rest on that – we need to keep being the best people we can be, and that includes taking a moment to think about the effects your words and actions might have on the people who are exposed to them.

  • WordPress 4.0: An Easter egg

    Every WordPress release is named after a jazz musician. I didn’t grow up listening to jazz and still don’t have much of an ear for it, despite significant exposure through college (I did terribly in required jazz classes, but I still went to concerts!). So when it came time to pick a musician for the release, I wasn’t quite sure where to go. As a pianist, I felt torn about my bias – Art Tatum came to mind almost immediately, but didn’t immediately feel right. I would also have loved for it to be Ella Fitzgerald for some hometown pride, but she’s already got a release named after her.

    Then I remembered that there is a jazz musician whose work I know a little better and have loved: Benny Goodman. He’s known for quite a bit in the jazz world, as well as in pop culture – if you’re familiar with “Sing, Sing, Sing”, it’s probably this version:

    In classical music, Benny Goodman is known for commissioning and premiering some of the most significant chamber and concerto works for clarinet in the 20th century, such as Bartók’s Contrasts and Aaron Copland’s Clarinet Concerto. Being married to a clarinetist, I am deeply familiar with these works and their lasting influence.

    When I settled down to work with Michael Pick on the release video, we chatted about what the style and tone of the video should be like. You can see his genius in the end product – it’s absolutely everything I wanted, and more:

    If you listen carefully to the background music, you’ll notice that it’s classical music with piano and clarinet; specifically, the third movement of the first Brahms Sonata for Clarinet and Piano, a piece that Benny Goodman never recorded, although he did record its sister sonata. What you might not know is who’s performing it, and I’m really pleased to reveal that it’s actually my husband and I playing!

    Pick and I think it worked out beautifully with the visuals and the tone of the video, and I love that I was able to add just a little something extra to a release that I’ve been so proud to lead. I hope you all enjoy 🙂

Recent photos