This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
Getting wild with digital design in 2018 means getting wild in 2018 with responsive design that’s agnostic to the kind of device you’re rocking. That’s doable, probably, but it’s really, really hard.
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
The ethics of engineering are an ethics of: Does it work? If you make something that works, you’ve done the ethical thing. It’s up to other people to figure out the social mission for your object. It’s like the famous line from the Tom Lehrer song: “‘Once the rockets are up, who cares where they come down? That’s not my department,’ says Wernher von Braun.”
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
Hey, 2017.
You were, hands down, the worst year of my life. The more distance that I’m able to put between you and I, the better.
Now, don’t get me wrong. Some really great things happened this year. But the worst thing I’ve ever been through in my life — which I’d much rather be vague about than recount here — also happened on your watch. And while it’s hard to hold a year personally responsible for the circumstances that occurred in the middle of it, I still kind of do.
Irrational? Sure. But it’s easier than self-reflection, I guess.
Maybe, eventually, I’ll be able to look back and thank you for making me stronger. For helping forge me into a more resilient person. But the wounds are still too fresh, and my emotions are still too raw.
Here’s to hoping that 2018 treats me — and all of us — a little bit better.
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
I’ve decided that 2018 is going to be a year of paring back.
Less junk.
Less apps.
Less podcasts.
Less distractions.
Less commitments.
Less eating out.
Less bullshit.
Less stress.
I’m not really interested in obsessively measuring how successful I am at doing any of these things. Mainly because of the “less stress” item on the list above. But I’ll still do my best to check in every once in a while.
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
Because all of the other social networks have become a huge fucking bummer, I’ve been lurking on a new peer-to-peer social network, Rotonde.
Right now, the chatter over there is (mainly) a bunch of navel gazing around building Rotonde. But I kind of prefer people yapping about hacking on JavaScript to a shitload of emotionally exhausting politics talk anyway.
Nodes (or “portals”) on the Rotonde network are, as of now, only viewable from Beaker — a stripped down, desktop only, Chromium based web browser that supports the BitTorrent inspired Dat protocol. Thanks to the peer-to-peer nature of Dat, Beaker is able to act as:
A web browser.
A place to host JavaScript and/or basic HTML sites of your own.
A distributed cache of the other Dat sites you’ve recently visited.
An simpleish demonstration of everything listed above can be demonstrated by spinning up your own Rotonde instance. Want to try?
Select "Fork this site" from the menu at the end of the address bar and give your new site a name.
Select "Library" from the hamburger menu near the upper right corner.
Select the name of the site you just created from the list on the left.
In the right hand pane, you'll see a list of files. Clicking on the name of your site will open up your Rotonde portal.
Select the input field (near the top of the page) and press CTRL + SHIFT + DELETE. This will reset your Rotonde instance.
Refresh the page.
Enter edit:name example (replacing example with your own preferred username) in the input field and press RETURN.
Change your avatar by opening your Beaker Library, selecting "Open folder", and replacing media/content/icon.svg with an SVG file of your choosing. If you don't want to bother finding one, someone's already generated a bunch that you can use. Just make sure you publish your changes after you've found something you like, or nobody will ever see it.
Go follow some people by pasting their dat:// URL into the input field. I wouldn't be mad if you added me, but I also won't be offended if you don't. There's a list of known Rotonde portals here if you want to browse around and see what's going on.
Write a post or two.
Once you have everything dialed in, sign up for a Hashbase account to mirror your portal. That way, your Rotonde content stays browsable even if your copy of Beaker crashes (as it is currently wont to do) or you need to take your computer offline.
One of my favorite things about Rotonde is that updates to the underlying client and portal software get rolled out to the entire network as features are added. This means that you never have to worry about keeping your client up to date — it just always is.
While Rotonde has clearly got a way to go — those aforementioned browser crashes, the community is still figuring out mentions, discoverability and following aren’t very user friendly — I’m excited to kick back on the sidelines and watch it all take shape.
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
This content was imported from blog.boogah.org, a failed attempt at a more introspective and personal blog. Instead of maintaining yet another WordPress install, I’ve decided to cram this content into the everything bucket that is my long running personal site. 🥴
There is no need to sharpen my pencils anymore. My pencils are sharp enough. Even the dull ones will make a mark.
Now’s as good a time as any for starting over, right? So let’s do something new. Something without all of the cruft. Something that doesn’t feel like an obligation or chore.
Honestly, I don’t even know what this is going to grow into. And I don’t know if we’re going to make it any further than a few days/weeks/months. But I’ve got an itch that I’ve been ignoring for far too long. So it’s either time to break out the Benadryl or get to scratching.
I know things are normally pretty quiet around here. But I have some actual, legitimate news.
In just a couple weeks, I’ll be joining the Managed WordPress team at Liquid Web as their Senior Performance Engineer. It’s an opportunity for me to get out of Marketing—where I’ve been broadening my skillset since last fall—and back into implementing things that impact users.
The decision to leave WP Engine was hard. In the five and a half years that I’ve been there, we’ve managed to grow the company from five employees in Austin (with me working remotely) to over four hundred and fifty across five offices in the US and Europe. I’m incredibly proud of what they’ve been able to build, as well as the hand that I’ve had in helping to do that.
However, when the opportunity came to work with the team that Chris Lema has put together, I couldn’t pass it up. It was simply too exciting.
So exciting that I don’t even know what else to say without turning this into a big, rambling, 4500-word post. Seriously. The previous revisions of this draft post go to some really weird places. And because I’m not really interested in tying my disjointed ideas together right now, I’ll spare everyone the word salad and post a GIF of how I’m feeling instead.
Maybe I’ll digest things a bit more and write about all of this later. Considering the last post I did here was in March, probably not. But hey, here’s to future aspirations…
I ran a few (incredibly unscientific) tests on Google’s new Guetzli JPEG encoder last night at 100%, 90%, and 84% compression. Why 84%? Well, that’s the lowest the Guetzli binary will let you go without editing the source and recompiling.
Each run (compressing a single image) took about 20 minutes on a medium sized cloud instance with 8GB of RAM. During these runs, the server routinely went into swap. If you’re interested in seeing how things panned out, here’s the output: https://img.boogah.org/g/
Included in the link above are 2 versions (lossless, and lossy) of the same image run through ImageOptim on macOS. Doing both of those took me less than 2 minutes, combined. And while the output of ImageOptim’s lossy compression isn’t near as sharp, it’ll still be “good enough” for most folks.
At the end of the day, Guetzli’s output is really nice. And it does do a great job compressing things. I saw anywhere from a 74.63% to 89.28% decrease in size from my original image with very few visual artifacts. In its current form, however, it takes way too long to act as an efficient enough batch processor for small, independent publishers.
So don’t go throwing away Kraken, Imagify, or Smush just yet… Especially if you post a lot of galleries. 😀
While I find the official WordPress Slack team incredibly useful, the sheer scope of it — over 10,000 users & 66 channels — makes the copy of Slack on my desktop ridiculously sluggish. It’s actually pretty crazy how much lower the RAM usage on my machine is when I remove the WordPress team from the app.
At this point I feel like my options are:
Stop hanging out in WordPress Slack. 😞
Requisition a new work machine with more RAM. For Slack. 😕
Shut up and continue to deal with it. 💩
I’ve gone with a modified version of option #3 thanks to Nativefier. It quickly wraps any site in an Electron shell and creates an executable for your operating system. So now I’ve got an app just for WordPress Slack. My (7) other teams can stay snappy and I can restart the Electron app as needed when RAM gets tight.
And if you’re using a Mac, you can have it too… Just click the image below to grab a (totally unsupported) copy.
Pardon the hastily thrown together icon. It’s this Dribbble shot plus a plain ol’ WordPress logo. To be honest, I wasn’t looking to blow a whole lot of time on this. And I didn’t. So that’s cool.
Hopefully at least one other person finds this useful!
I finally had the chance to do a little WordPress work in Laravel’s lightweight development environment Valet last week. My hot take?
If you’re interested in setting it up on your Mac, there’s a solid tutorial that outlines how to get started by Tom McFarlin over at Tuts+. And if you’d like to go down the rabbit hole even further, Aaron Rutley has written a script that helps you create and delete sites under Valet in seconds.
I’m going to spend a little more time with this over the coming weeks. Maybe I’ll put something interesting together if I can find the time… No promises though.
Taylor has been on fucking fire lately with plugin releases. Simple Cache does one thing — caching, natch — and it does it very well:
Simple Cache was constructed after getting frustrated with the major caching plugins available and building sites with developer-only complex caching solutions that get millions of page views per day.
If you need your site to run fast, don’t have time to mess with complicated settings, and have been frustrated by other caching plugins, give Simple Cache a try.
Sounds nice. Wish I had an unmanaged site to use this on.
While I’m normally a Solarized Dark guy — seriously, I’ve Solarized Dark’d all the things on pretty much every computer I touch — these Atom syntax themes are really pleasant.
I’ve been looking to change things up lately, so I’m going to try living with darkSea for the next month. I’ll let y’all know how it goes!
Ever since I listened to this episode of The Tim Ferriss Show in December, I’ve been thinking about trying to see if I can manage to go 21 days without complaining to help improve my mindfulness.
The plan is a fairly simple one:
Put on one of those silicone (or rubber) bracelets.
Come up with a list of things you consider to be a “complaint”.
Besides outright complaints, I’ve included using curse words as intensifiers (ex: the fucking WiFi) and sighing as a response.
Yeah. I still sigh about stuff. Like a teenager. 😞
Whenever you catch yourself complaining, move your wristband to your other wrist and reset your “days without a complaint” counter.
To prepare, I bought some unbranded, black rubber bracelets off of Amazon and set up a “No Complaints” goal in Streaks. As soon as the bracelets arrived, I started.
So. How has it gone?
Well, since Monday, I haven’t gone a single day without complaining. Which is kind of a disheartening way to start things out. But I’m not treating this as defeat just yet. Why?
This morning, while I was kicking myself for not making it past a single day, Sarah pointed out that at least I was noticing the times that I had complained. That means that something I’d been doing as an almost reflexive reaction to everything — and paying no mind to — has become something that I can’t stop seeing.
Becoming aware of just how often I complain was the first step. That’s a “no duh” moment now — what with the sharpness of hindsight and all that — but the realization was still a pretty powerful one.
I’ll be 38 next week. Sadly, I’ve been complaining about things for about as long as I’ve been able to speak. Breaking that habit is going to take a while to undo, but I feel like I’m up to the challenge.
After guesting on a few podcasts over the past year, I’ve come up with what I feel is a simple (but thorough) preflight checklist of the things that I like to do to before recording. These things help normalize my environment and minimize the majority of technical difficulties that I run into.
Anyway… In an attempt to be helpful, I thought I’d share them with y’all.
While I’m sure that some of this — especially the part about restarting my residential gateway & router — is just nerd voodoo, I haven’t run into any major issues after implementing this checklist.
I’d love to hear about anyone else’s pre podcast routine. If you have one, please share it!
P.S. If you’re not familiar with Shush, it’s an app that allows you to discreetly mute (or unmute) your microphone with a hotkey. Should you be recording in a location where children or pets are present, using its push-to-talk functionality can knock down a considerable amount of background noise.
P.P.S. For podcasts that are recorded via Google Hangout, I keep a clean copy of Chrome Canary installed on my machine. I run Canary separately from my main browser, and have not installed any additional extensions. While loading the Hangout URL in an incognito window might have a similar effect, I find doing this leaves less to chance.
When it comes to storing large amounts of data that does not very closely mimic existing WordPress database schemas, you should absolutely use custom tables. Choosing not to use a custom table will likely cause more harm than good. While it’s possible to store almost anything you want as a custom post type in the wp_posts table, that does not mean you should or that it is even a remotely good idea.
You have no idea how happy I am that someone is finally saying this. I’m even happier that the someone saying it is Pippin.
Really looking forward to the rest of the articles in this series!
A couple great WordPress podcasts — WP Dev Table and WPwatercooler — have been nice enough to have me on as a guest recently. Instead of having you dig around each site to find the episodes, I’ll just go ahead and leave them here…
As you can see, I’m a pretty insightful guy. Humble too.
Want to have me on your podcast? Hit me up on Twitter!
The Big List of Naughty Strings is an evolving list of strings which have a high probability of causing issues when used as user-input data. This is intended for use in helping both automated and manual QA testing; useful for whenever your QA engineer walks into a bar.