This might be the first post ever published on WordPress using PHP7.4.

I have every reason to believe that this is the first post ever published on WordPress using PHP7.4. It’s likely coming a bit premature, but if you aren’t willing to have some fun, then why maintain upstream language compatibility of an open source project. I’ve worked on php version support in WordPress since PHP7.0 and made the first post using WordPress on php7.3, so this is becoming a fun tradition.

Yesterday I added code to WordPress core to fix a number of deprecations in PHP7.4. PHP7.4 is scheduled to be released on November 28, which is 74 days and 5 release candidates away. The goal for WordPress is that version 5.3 will fully support PHP7.4 and that version is scheduled to be released 12 November 2019.

The biggest deprecations in 7.4 that affect WordPress core are around magic quotes and

For plugin and theme authors, you’ll want to look into:

PHP7.4 features for WordPress Developers

It’s not just deprecations in PHP7.4 that WordPress developers can look forward to, but the PHP internals team has added some new features for us to use as well.

Typed Properties continue the evolution of PHP’s type system to allow for class properties to be type strict. The only Property types you can’t use are void and callable, otherwise every type decleration is supported.

Arrow Functions allow for simpler anonymous functions. I recommend only using these in callbacks such as with array_map in order to make your debugging simpler.

Coalescing Assignment is here as syntactical sugar. ??= allows for you to add default values easier.

If you see any errors or notices on this site, let me know in the comments. Assuming this actually publishes, then WordPress can be used with PHP7.4, but I only recommend it for those feeling especially adventurous.


My friend’s Dads

I can’t say I knew John well, but his son has been a part of my life for half of it and for so much of that, my best friend. I can’t even say I knew John well, but his presence in my life provided a fewstrong and distinct memory.

Dan became a friend that I knew for my whole life from virtually the moment I met him. Hockey, baseball, the Dead: I had tons of things to chat about with a man 25 years my age.

The last time I saw John was at Tom’s wedding. John greeted me as a second son. He loved Tom and if someone was important to him, he was going to do his best to love him as well. John didn’t need a lot to be happy. A cold drink, some tasty meat and the people he loved would make him smile. He didn’t need much to make home smile.

Dan has this hockey game that involved picking the winners of each playoff series and talking some shit to each other. It’s a game his son introduced me to and Dan invited me to be a part of his league. It’s a game I look forward to playing every year.

The first time I hung out with John is a memory that will stay with me more than any other. You see, Tom and I had just turned 21 and John was happy to take us to the bar. We went to the top of the Landmark Inn, overlooking Lake Superior. And John bought us broke college students drinks. He wanted us to have fun. This was my first time meeting John but he treated me like he knew me forever. He became a friend instantly.

In jokes can take years to develop or in the case of Dan, an instant. The first time I hung out with Dan he demonstrated leadership in a way that authors spend years working on and it earned him the name Cap’n. Or at least I think that’s the story. It’s sort of lost to the annals of time.

This year, I lost my mom and two of my best friends lost their fathers. It’s pain that all of us will process and it’s pain inspired by memories of great people. Hug the people you love. Tell them you love them. Tell them every time you talk to them. John and Dan never met but im sure if they sat next to each other at the bar they would end up laughing and smiling. So today I’ll laugh and smile and be glad I had them in my life.


Ars Est Verum

In May I saw an incredible show about Nancy Spero at PS1 and the thing that stood out to me was the sign she had in her studio:


art without knowledge is nothing

Art without knowledge is nothing. It’s a bold statement that is attributed to the long dead architect Jean Mignot. To me it’s about the fact that we need knowledge to truly appreciate art. We need the context of who the artist was, of what the world was. Until we can know more about art, we can only look at it as an aesthetic item. Beauty can be appreciated but it’s only skin deep. It’s knowledge or brains that add the depth. And without depth, there is nothing there. Hence, Ars Sine Scientia Nihil Est.

I have been thinking about how it could be simplified and my instagram has been littered with stories featuring a similar phrase

Ars est Verum

Art is truth

Truth is a foundation for understanding, it’s needed for knowledge. Otherwise that “knowledge” is just a random set of sentences or ideas. Knowledge without truth is nothing.

Is Art Truth? I don’t know. It’s just a theory, but there is something nice about it. What I do know is art inspires emotions and emotion is true. I know art exists, so it is truthy. But does Art === Truth? That’s a question I can’t answer and I’m not sure I ever will be able to answer it. But while I try, I’ll at least have a belief that Ars est Verum

Art Programming WordPress

Art and Commit Messages: Volume 2

Last year I published volume 1 of Art And Commit messages and sold nearly 50 copies! For my first zine, I was ecstatic that so many people were willing to spend $3 on something so unknown. I have already started thinking about Volume 2 and think that it will be a great thing to publish at WordCamp US. I’m also thinking it might make sense to include some different things this time.

Art by more Artists

Volume 1 featured my art, for Volume 2 I would like to feature the art by more artists. I am also thinking of budgeting a small amount so that artists are compensated, but as Volume 1 didn’t make any money I think this is going to be a low amount. Maybe $50 for each piece.

Are you interested in having your artwork featured in Art and Commit Messages? Let me know:

Essays by More Writers

Along the same lines, I want to feature a couple of essays about commit messages from a variety of people. What kind of essays would you like to see in volume 2?

Finally, I want to figure out some sort of game to include. Maybe I loved reading Highlights for Children too much as a kid, but I think a game would be fun.

Art and Commit Messages: Strange Bedfellows

Art and Commit Messages might feel like an odd combination but the best of both are snapshots that convey an intent. Art transposes the emotion of the creator to an audience. It can transport you into the brain of the artist. The best commit messages similarly transport you into the brain of the creator. They share the coders intent.

That’s the message from the cover of volume 1. I absolutely recognize the odd combination, but they are two things that I care about and I hope that by combining these two strange bedfellows I can encourage people to write better commit messages.

Overall, my goal remains to encourage high quality commit messages through education, entertainment, and an understanding of history. I’m not looking to make money, if I was I wouldn’t be making a zine.

Do you have other ideas for making Art and Commit Messages better? Leave a comment or get it touch and let me know!

mostly pointless. WordPress

An adventure with a super useless one-liner to find the most common words in WordPress commit messages

I read some insight into Drupal committing and they had a chart of the most common words in drupal commit messages. I thought it would be interesting to do something like that with WordPress Core, so I through together a bash one-liner to find this. It’s not the most eloquent solution, but it answers the question that I had. Here is what I initially came up with.

svn log -rHEAD:1 -v --xml | xq '.log.logentry | .[].msg' | sed 's/.$//' | sed 's/^.//' | sed 's/\\n/ /g' |  tr ' \t' '\n' | tr '[:upper:]' '[:lower:]' | sort | uniq -c | sort -nr | head -n 25

Let’s walk through this since there is enough piping going on, that it may not be the easiest to follow.

svn log -rHEAD:1 -v --xml

I start by getting an xml version of the SVN history, starting at the first changeset and going until the current head.

xq '.log.logentry | .[].msg'

Next, I use xq which takes xml and allows me to run jq commands on it. It’s a handy tool if you ever need to use xml data on the command line. In this case, I am taking what is inside <log><logentry> and then for each sub element, extracting the msg. At this point, the messages are on a single line wrapped in quotation marks with \n to signify newlines. So I run three seds to fix that up.

 sed 's/.$//' | sed 's/^.//' | sed 's/\\n/ /g'

I’m sure there is a better way to do this, but the first one removes the last character, the next one removes the first character, and the last one converts new lines to spaces. Since words are what we are aiming to look at, we need to get all the words onto their own lines.

 tr ' \t' '\n'

tr is a powerful program for doing transforms of text. In this case, I am taking whitespace and turning it into actual newlines (rather than just the new line charachters). There is likely a more elegant way to have solved this, but my goal isn’t the best solution it’s the working one.

tr '[:upper:]' '[:lower:]'

Word and word are not equal, so we need to make everything a single case. In this case, I am again using tr, but now I am transforming upper case characters to lowercase.

sort | uniq -c | sort -nr | head -n 25

Counting things on the command line is something I have done so many times, I have an alias for a version of this. Sort puts everything in alphabetical order, uniq -c then counts how many uniq values there are and outputs it along with how many of each it counted. uniq requires things common things to be in adjacent lines, hence the initial sort. Next up, we want to sort based on the number and we want high numbers first. Finally, we output the top 25.

 28997 the
 20429 fixes
 17844 to
 17818 props
 15251 for
 15189 in
 14441 see
 10856 and
 10272 a
 7549 of
 5594 is
 5227 when
 5133 add
 4444 from
 4143 fix
 3847 *
 3821 on
 3489 use
 3320 that
 3267 this
 3064 with
 3043 remove
 2983 be
 2766 as 

That’s not super helpful. The isn’t my idea of interesting. So I guess I need to remove useless words. Since I have groff on this machine, I can use that and fgrep

 fgrep -v -w -f /usr/share/groff/1.19.2/eign

I also noticed that the second most common word is whitespace. Remember when we used to put two spaces between sentences? WordPress Core commit messages remember. So let’s add another sed command to the chain:

sed '/^$/d'

And now the final command to see the 25 most used words in WordPress Core Commit messages:

svn log -rHEAD:1 -v --xml | xq '.log.logentry | .[].msg' | sed 's/.$//' | sed 's/^.//' | sed 's/\\n/ /g' | tr '[:upper:]' '[:lower:]' | tr ' \t' '\n' | fgrep -v -w -f /usr/share/groff/1.19.2/eign | sed '/^$/d' | sort | uniq -c | sort -nr | head -n 25

And since you’ve made it this far, here is the list

 20429 fixes
 17818 props
 15189 in
 5594 is
 5133 add
 4143 fix
 3847 *
 3320 that
 3267 this
 3064 with
 3043 remove
 2766 as
 2435 an
 2432 it
 2109 post
 2103 if
 2080 are
 1889 don't
 1793 update
 1735 -
 1688 twenty
 1523 more
 1500 make
 1471 docs:
 1416 some 

Have an idea for another way to do this with the command line? I would love to hear it.

About Aaron

Thirty Six

36 is the smallest square triangular number other than one. Its also the sum of the letters and the numerals, so its a pretty fun number. Let’s hope it’s a pretty fun year.

35 was a hard year, mostly because it’s the year my mom died. Frankly, the time leading up to and the time since, it’s been the defining event. I feel incredibly lucky that I was able to see my mom just about every month last year and also that I spent her final few weeks caring for her. It was hard, but it was worth it.

That’s not to say 35 was all bad. 35 saw me switch to a new job that I thus far really enjoy. It’s much more of a management position than I was in previously and that had brought new and different challenges. It’s also reinforced my belief that one of my superpowers is that I’m really good in meetings.

I saw some incredible art over the last year. I had a goal for 2018 to see all of the Met, and essentially did. I discovered some incredible off the beaten patch parts of the museum, including so much architecture and furnishings. The baseball card exhibits have also been a lot of fun.

My museum memberships increased this last year, I now am a member at MoMA, The Met, The Whitney, and The Guggenheim. It feels great to be able to see so much art and also to share it with friends.

For 36, I hope to make a trip specifically to visit an art museum (so many to choose from, where should I go?). I hope I also get a chance to remind my friends and family how much I love them. It would be good to get better at staying in touch, something I struggle with.

For my own art, I painted my largest painting yet, did a multi-panel piece related to baseball, and painted Javascript, deeply. I’ve also started exploring digital art more and published my first zine.

If you are feeling generous, I would love if you supported one of my favorite non-profits.

I’ve previously blogged 3534322928.

About Aaron

Last Will and Testement

This post is designed to serve as my final wishes when I end up #dead. It was last updated April 2019.

My brother is hereby designated as responsible for fulfilling these wishes. HAHA, Sucker.

Upon my death, I am to be cremated. My ashes should be thrown in the face of Mitch McConnell. If that piece of shit is no longer alive, please find a similar asshole and throw my ashes in his or her face.

With all the alcohol I have, including beer, , and Malört, a party should be thrown. You should call this party “Aaron’s Funeral” and no one leaves until it has all . If you can’t hang, don’t bother showing up.

All other assets of mine should be used in the following manner:

First: Pay for legal representation for anyone charged with completing the proper disposal of my ashes (see above)

Next: With the first $1,000,000 (AKA, all of it unless I’m really lucky), 1% is to be given to the person who most recently punched Richard Spencer in the face and has posted the video online. The remaining 99% shall be used to set up as a trust for my niece that is to be disbursed 40% when she graduates high school, 40% when she graduates college, 20% when she posts her first drunk selfie on a social network. My brother is to be the trustee of this trust.

With any remaining funds, I would like it donated to American Model United Nations.

Art Code Four Short Things

Four Short Things – 2 March 2019

Inspired by O’reilly’s Four Short Links, here are some of the things I’ve seen, read, or watched recently.

Clicks are an “unreliable seismograph” for a news article’s value — here’s new research to back it up

This is a summary of a report on user behavior on the web. It found a few things that aren’t super surprising:

  • Relevance is the paramount driver of news consumption. People find those stories most relevant that affect their personal lives, as they impinge on members of their family, the place where they work, their leisure activities, and their local community.
  • Relevance is tied to sociability. It often originates in the belief that family and friends might take an interest in the story. This is often coupled with shareability – a wish to share and tag a friend on social media.
  • People frequently click on stories that are amusing, trivial, or weird, with no obvious civic focus. But they maintain a clear sense of what is trivial and what matters. On the whole people want to stay informed about what goes on around them, at the local, national, and international levels.
  • News audiences make their own meanings, in ways that spring naturally from people’s life experience. The same news story can be read by different people as an ‘international’ story, a ‘technology’ story, or a ‘financial’ story; sometimes a trivial or titillating story is appreciated for its civic implications.
  • News is a cross-media phenomenon characterised by high redundancy. Living in a newssaturated culture, people often feel sufficiently informed about major ongoing news stories; just reading the headline can be enough to bring people up to date about the latest events.
  • News avoidance, especially avoidance of political news, often originates in a cynical attitude towards politicians (‘They break rules all the time and get away with it!’), coupled with a modest civic literacy and lack of knowledge about politics.

Jasper Johns: Recent Paintings and Works on Paper

Jasper Johns continues to callback to previous works while introducing new motifs and styles. The 88 year old artist shows off why he is the living artist who’s works sell for the most. This show is on view at Matthew Marks Gallary (522 West 22nd Street) until April 6.

Building a Culture of Safety

Josepha identifies the importance of creating safety when it comes to leadership and identifies what safety is, namely physical, psychological, social, and moral safety. I’ve been really enjoying her writings around leadership lately and has definitely helped me think about how I can apply the ideas to my leadership style.

Spectacle: ReactJS based presentation library

I’ve started researching presentation libraries to see what has changed in the last year. Spectacle was available last I looked, but it seems like it has come a long way and I’m thinking it might be time that I give it a try.

Four Short Things is a series where I post a small collection of links to art, news, articles, videos and other things that are me. Follow my RSS feed to see Four Short Things whenver it comes out.


Mobile Block editor – Initial Thoughts

I’m writing this using a beta version of the WordPress iOS mobile app that integrates Gutenberg. It is fairly stripped down as far as blpacks go.

While this site has blocks from multiple plugins (including Gutenberg so I can try the latest features), the app has much fewer options.

Blocks available from the mobile app

I was definitely surprised to not see all the core blocks, especially not to see my reusable blocks that I have saved to the site.

Another thing that surprised me as a power user is that slash commands for new blocks don’t work.

I also can’t figure out how to access the block inspector to save options on differnet blocks.

Opening up posts with blocks in them other than this initial set shows those blocks as “unavailable”. This includes all the embed blocks.

Unsupported is the new black

The responsiveness of the editor is amazing, and the ability to move blocks up and down makes editing inside the mobile app much easier.

Overall, as a version 1, I like it. I also think that it has long way to go before I will abandon opening a mobile browser for the majority of my on the go blogging.


To Viper

My first interactions with Alex were in the #wordpress IRC channel, likely him helping me with some code. Over the coarse of a couple of months, we joked around and chatted code. At some point the mention of his username prompted the question of if he had a Viper, but I found out he didn’t even have a driver’s license! I didn’t even realize that this person I was becoming friends with lived in my city, but when I mentioned WordCamp Portland I found out I would actually get to meet him in person. Alex became the first person I met through WordPress chats that I got to meet in person.

At WordCamp Portland 2009, Alex led an unconference session on Advanced WordPress development. I think that Matt Mullenweg might have been the one who put Alex’s name on board and pushed him to lead the discussion. It was during this session that I was first introduced to the idea of custom post types. This event was one of the most important events on my journey to were I am today, and Alex leading a discussion was a part of it.

The following year at WordCamp Portland 2010, I gave the final session of the second day. The room was half empty at this point, but Alex had stuck around to support me. Unfortunately, Alex might have been more exhausted than he had let on as I remember looking at him at one point and seeing him asleep. For a couple years, I encouraged him to give a talk at a WordCamp so I could fall asleep in it.

In 2011 at WordCamp San Francisco a small group of us headed out in search of dinner. This is when I found out that Alex was the opposite of an adventurous eater. We discussed multiple places before heading to some chain restaurant that had cheese pizza and I got to enjoy one of Alex’s favorite dishes, but more importantly I got to enjoy a meal with him.

Alex and I continued our conversations for years. We never were close friends, but we always remained friends. After his initial diagnoses with Leukemia, I wrote some unit tests with Alex in mind. Alex’s contributions to WordPress were numerous, and his contributions to my life are unforgettable. Whenever I see a Viper, I’ll forever think of a man who was obsessed with cars but didn’t get his license until his mid twenties. Tonight I raise my glass to Alex, Viper007Bond, Mills.