Berenstein/stain Bears

Do you remember The Berenstain Bears?

Do you, like millions of others, misremember them as the Berenstein Bears? I remember reading about this years ago, and now the web has caught up – people are freaking out about glitches in the Matrix, alternate realities, and other malarkey.

Brace for impact…

It’s always been “Berenstain”.

I very vividly remember my 2nd grade teacher “correcting” my saying “stain” in front of the entire class. I used to read books to the class, repeatedly, every week. The Pokey Little Puppy, The Monster at the End of This Book, and a bunch of other favorites that my mom used to read to me.

The Berenstain Bears was one of them.

This phenomena was created by adults without appreciation for detail, who propagated one mispronunciation to impressionable young minds. It’s the same as everyone playing Monopoly incorrectly for decades.

Human minds naturally trust ubiquity & do not reprocess solved problems.

The lesson? People all around you accidentally influence your perceptions, in ways that have seemingly invisible yet long-lasting effects.

Concepts like discrimination, racism, classism, ageism, and so on, are ideas handed down to us by the people that came before us.

You can continue believing what your memories have convinced you over-time as real, or you can accept reality as it presents itself today, tomorrow, and everyday thereafter.

There are no super heroes or villains. No aliens. No ghosts. No time travel. And definitely, without question, no Berenstein Bears. 🐻

Meta Icon v1.0.0

In my job, I work with a lot of meta-data. (If you’re not sure what meta-data is, go search the web & come back; I’ll wait here…)

I’m frequently annoyed at a lack of an icon for it. Unlike technologies like RSS, HTML5, and so on, meta-data is harder to visualize and define because it means many different things in many different applications.

In WordPress, meta-data traditionally refers to our arbitrary key-value storage system for primary objects like posts, comments, users, taxonomy terms, and so on. It also refers to the team of mostly-volunteer staff that help build & maintain wordpress.org and the surrounding galaxy of sites connected to it.

Right now, WordPress’s Meta team uses the networking icon as it’s mark, which isn’t bad, but I don’ really think it’s right. It looks like this:

Screen Shot 2016-09-04 at 12.20.48.png

I was also working on a WordPress plugin for multisite blog-meta, and couldn’t find a suitable icon, so I decided to take a stab at one myself.

Of course, it’s likely a similar design exists somewhere for something else (and any similarities are accidental & coincidental) and I have a bad habit of thinking I’ve invented something only to learn someone on the web beat me to it.

I figure, it’s better to put something out into the world for scrutiny sooner, so here’s what I came up with in a pinch, and you can see it in action here:

 

meta-icon.png
Dark
meta-icon-light.png
Light

All of the assets are up on Github, pull-requests encouraged. ❤️

P.S. Please don’t sue me if this icon is already a thing. I promise, I had no idea, and Google’s reverse image search came up empty, so maybe you should look into that instead of bothering lil’ol me.

 

Dear Automattic,

I know it’s been 3 years since we split up, but I wanted to reach out to say that I’m sorry for all of the pain I caused you.

You see, back in 2010, I was on top of the WordPress world. I had great clients, was making OK money, and was making a move away from a city that hated me (Miami) to a city that might hate me less (Providence.)

I gave up my clients and my money to pursue you. I switched from Qwerty to Dvorak for you. I even tried new things I knew I would hate to try and make things work between us. I gave you my best ideas about Jetpack, Reblogs, Followers & Likes, but once I had you, you weren’t what I expected you to be…

That was my fault, for putting you on a pedestal. I set expectations you weren’t setup to meet for me.

When you asked me to join you as part of your distributed workforce, I asked if I would have to wear pants. That quip echoed through the company culture enough where The Year Without Pants was the popular vote for a book where I’d only be mentioned a few small times amongst a team of top-tier Automatticians.

When you asked me to work on Jetpack, I wanted to work on WordPress.com Profiles. I still think user profiles are a live cavity that desperately needs filling to make WordPress.com more enjoyable, but you didn’t agree. I know now that that’s okay, but back then I was pretty deflated… lost… really just aimless for a while.

When you asked me to try out VIP, I was excited to try out anything new (because back then changing teams wasn’t really a thing) but we both knew I’d be miserable in ZenDesk all day, so it was really just a kind way to force a mutual decision, and that’s okay too.

Looking back at our time together, there are some things I’d do differently, and some things I wish I had the opportunity to see through. I joined you with an agenda, which wasn’t fair. I wanted a very specific role that I felt entitled to; that I had earned; that I proved my worth a hundred props over. I wanted a role where I could experiment and set trends and feel like I was trusted to make decisions and change you for the better.

I guess I was pretty terrible to you. I mean… I never talked bad about you, or put you down, or made you feel less-than. But I wasn’t giving you my full effort or attention, because I felt like the open-source WordPress.org community work was more rewarding than the WordPress.com for-profit work. I felt entitled to work on BuddyPress & bbPress the way Andy & Sam had before me. I felt like there were things I wanted to accomplish that I expected you to support me in, and when I didn’t get my way, I wasn’t happy about it.

I like to think that in 3 years time, I’ve learned a bit, changed a bit, maybe grown a bit, and spent a few minutes here & there deep-in-thought about our time together, trying to unwind it and learn everything I could from it. There’s good memories & bad, ups & downs, but my personal takeaway is that I wasn’t a very good employee, as far as employees go.

You gave me all of the things that, on paper, make a great career and environment. You gave me freedom and liberty to work at my own pace and learn — I mean really learn — how to work within a complex environment of systems, people, interests, wants & needs. I could have probably been happy with you for a very long time, and I think you would have been happy with me too, but I let my pride & vision of what I wanted for myself prevent that kind of relationship from ever really maturing.

So, Automattic, I’m sorry. I’m really proud of what you’ve become since I left. It’s exciting for me to watch you grow, knowing that deep in the commit logs & company lore are a few of my fingerprints. I’m really happy that you’re branching out with WooCommerce, Calypso, and all the other neat little secret stuff that no one is supposed to know about but everyone kinda sorta knows about. It’s great that you continue to employ hundreds of people, give great benefits, and try to treat everyone fairly.

I’m not sure if you’re the one that got away, but I hope that no matter what happens with this whole WordPress thing, we can always be excellent to each other going forward.

Thanks for the memories,

-JJJ ❤️

Upgrading MariaDB Ubuntu Server from 14.04 to 16.04

First, I needed to remove the old apt repository and signing key. (This prevents do-release-upgrade -d from stopping halfway through.)

Remove repos:

cd /etc/apt/sources.list.d
sudo rm maria*

Remove old key:

# List the keys
sudo apt-key list
# Remove the correct key, which is the second half of PUB STRING1/STRING2
sudo apt-key del STRING2

Second, I needed to add the new apt repository and signing key:

# Probably is already installed
sudo apt-get install software-properties-common
# Get the key
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
# Add the xenial repository
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirrors.accretive-networks.net/mariadb/repo/10.1/ubuntu xenial main'

Now you are safe to run do-release-upgrade -d without any halts!

You’ll probably want to backup your `my.cnf` file too. The upgrade process will ask you to keep or overwrite your old one, and neither of those options are usually very desirable if you have tuned your MariaDB configuration at all.

Back to Twenty Sixteen

Yesterday I switched my blog’s theme back to WordPress’s current default theme, Twenty Sixteen. I’m really enjoying the simplicity of a traditional layout again.

Screen Shot 2016-07-13 at 06.59.41.png

I also like being able to rotate small header images between page views. This current batch of images is from some screenshots I took while playing the very pretty and fun iOS game Monument Valley.

Since the About.me sidebar widget was retired from WordPress.com starting July 1st, I decided to try putting a Patreon link over there instead. If you’re reading this and happen to enjoy using any of my WordPress plugins, give that link a click and let me know what you think about it here in the comments.❤

Good and Evil

This past Friday, my car got hit by a motorcycle. There’s a story there, but this post isn’t about that. Rather, it’s about people’s perception of the rider.

He must have been speeding.

He must not have been paying attention.

He must not know how to ride.

None of this is actually true, though. He wasn’t speeding, he was paying attention (mostly) and is a veteran rider with about 25 years experience.

Generally, I think for “most people”, it’s maximally convenient and efficient to categorize things (and people, and ideas) in the most extremely polarizing way, and then work inwards towards an understanding or acceptance of that thing.

I also think this is why I have hard time navigating the world; I think of everything as inside-out vs. outside-in. My starting line is in the middle, and my Good-o-meter(TM) swings based on whether I found joy or pain in that thing.

There are currently a few members of our local village government that have reputations for not being very friendly, for having ideas & beliefs that go against the grain, and for being a bit confrontational. And that reputation has glorified them into villains, which is pretty silly if you stop and think about the individuals.

There is no Good and there is no Evil. There is no right and there is no wrong. There is only circumstance and action, or a lack of either or both.

Everyone chooses how to act or feel based on their awareness of what’s appropriate, what’s possible, and what their level of maturity is in dealing with those situations. The circumstances for this motorcyclist are different than mine with my car are different than the eyewitnesses.

It’s easy to feel like someone closing your issue on Github makes them a terribly stupid person who does not understand the importance of the issue you’ve raised. It’s easy to think your WordPress core ticket sitting around for 5 years means no one cares. It’s easy to say someone sucks because of something they’ve said or done you don’t agree with.

It’s easy to assume that mass shooters are crazy, that they’ve snapped, or any other extreme set of rules that polarize the perpetrator. Who knows, and the why almost doesn’t even matter, because it doesn’t change the outcome, and not much will be done to prevent similar outcomes in the future. What if someone broke his heart, and he couldn’t cope? Do we suddenly try to prevent all future heartbreak?

There will always be unpredictable terrible circumstances created by human-kind, and it requires collective bravery and awareness to reduce the consequences of those harmful decisions. (And full disclosure, it’s my experience in my own life that “most people” are neither aware nor brave, meaning my outlook on the pool of resources available to make positive change is, honestly, bleak.)

It’s equally easy to say homosexuality is evil. Or being pro-life is evil. Or white-dudes are evil rapists. These are all obviously incorrect assessments; and… think of all the times you’ve identified something as bad (or felt wrongly profiled by someone) and imagine that there are millions of people that find genuine joy in that thing without you.

Instead of starting with good or evil, please train yourself to start from the middle and let the circumstances steer your assessment about the variable value of a thing in your life. Actively avoid extremes, and politely remind others that people are people, and heroes & villains are figments of their imaginations.

Be objective. Be sincere. Be better.

XDebug, Laravel Valet, NetBeans

Screen Shot 2016-05-10 at 11.09.35.png

To get XDebug working with Laravel Valet & NetBeans, I needed to do the following:

  1. Install XDebug via Homebrew:
    brew install homebrew/php/php70-xdebug
  2. Enter NetBeans’s Preferences > PHP > Debugging:
    1. Change the port from 9000 to 9001.
      (This is because Valet runs on 9000 by default.)
    2. Uncheck “Stop at first line”.
      (This is because Valet is listening to all requests, and server.php will get hit a bunch of times in the same page refresh.)
  3. Edit /usr/local/etc/php/7.0/php.ini
  4. Add this bit to the end:
    [xdebug]
    xdebug.remote_enable=on
    xdebug.idekey="netbeans-xdebug"
    xdebug.remote_port=9001

    This turns on remote debugging, and tells XDebug to look for NetBeans’s IDE key.

  5. Restart Valet with valet restart in your favorite terminal app.
    Note that brew services restart php70 isn’t enough here; you need to restart Valet entirely.

Also…

Live debugging using XDebug will severely degrade Valet’s otherwise snappy performance. Composer will even tell you this:

You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug

This is normal. XDebug is a hugely powerful realtime interpreter, debugger, and profiler, and it’s going to slow things down while it’s listening to all that PHP chug along. (You may be able to tune this a bit using all of XDebug’s extensive settings.)

If you’re worried about battery life, most IDE’s (like NetBeans) will let you turn debug sessions on and off. So debug, do your thing, find the bug, kill the bug, and turn it off.