Steve Grunwell

Open-source contributor, speaker, and electronics tinkerer

Page 10 of 14

SQL-generated Hyperlinks in your Spreadsheets

I was building a QA spreadsheet the other day, where I needed to generate a number of randomly-generated WordPress posts with the posts’ titles, URLs, admin URLs, and publication date to be shared with the client via Google Drive, and needed my SQL query to generate links that could readily be pasted into the spreadsheet.

Continue reading→

Getting Started with Roasting Coffee at Home

Since starting to work from home in the fall, my personal coffee expenses have risen; not only am I drinking coffee at home seven days a week, but I no longer have the excuse of “well, the office coffee isn’t the best, but at least it’s free.”

Columbus has some fantastic local roasters–Café Brioso, Stauf’s, and One Line Coffee, to name a few–but most of the best shops are located closer to downtown, making it rather inconvenient for a suburb-dweller such as myself. There are a few places closer to home where I can purchase the beans, but there’s a limited selection and no guarantee on freshness. Meanwhile, my local grocery store’s offerings are run-of-the-mill macro-roasts (Folgers, Maxwell House, Starbucks, etc.).

Inspired partly by a Twitter conversation with Joel Worsham and by Matt Haynes, my mentor in all things caffeinated, I decided to give roasting coffee at home a try.

Continue reading→

Watch me on WPRoundTable

Tonight, I was the guest on WPRoundTable #41, where we talked 10up, WordPress, Son of Clippy, version control, and more. Rich Robinkoff and I also teased (well, basically announced) the impostor syndrome panel we’re working on with Angela Bergmann and WP Tavern’s Jeff Chandler.

Continue reading→

The Direction of the Blog in 2015

Since starting at 10up, I’ve been spending more and more time writing on this personal blog. It could be that I don’t have any real obligation to write for a company blog (Buckeye was small enough that I felt a sense of “well, if I don’t write for the blog, Tori will be the only one!), or the increased visibility through my new network of friends and colleagues.

More likely, the daily exposure to Eric Mann, who is an advocate for regular blogging and had a streak of 365 consecutive days of blog posts in 2014 is to blame (if in doubt, blame Eric). I’ve also been reading Chris Lema’s excellent blog, which just makes me feel like a slacker by comparison.

Continue reading→

Resolving PHPUnit issues on VIP Quickstart

I ran into this issue on my VIP Quickstart Vagrant box today while attempting to run PHPUnit:

Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/bin/phpunit on line 38

Continue reading→

Recap: CodeMash 2015

Last week I attended CodeMash 2015, my third time attending the conference. Held at the lush Kalahari Resort and Convention Center in Sandusky, Ohio, CodeMash brings together some of the brightest minds in Ruby, .NET, and JavaScript for two days (plus a pair of optional “pre-compiler” workshop days before the main conference) of code, networking, and (eventual exhaustion).

Continue reading→

Bypassing JavaScript Anti-Clipboard Measures

As I write this, my new Epiphone Casino is sitting in my lap and I’m looking up George Harrison guitar tabs. Unfortunately, when you’re best known as one of the Fab Four, lawyers love to block access to your work that doesn’t bring in royalty checks for your estate. When looking for one song in particular, What is Life, my go-to tab site, Ultimate-Guitar.com, came up short.

Continue reading→

Making Apps Personal with Gravatar

If you haven’t already implemented it in one of your own apps, you’ve almost certainly used a site that uses Gravatar, an Automattic-maintained project that provides the web with Globally-recognized avatars. WordPress sites naturally use them for author and commenter avatars, but Gravatars are also used by major sites like Stack Overflow, GitHub, and more.

For maximum portability, Gravatars are always square and can be automatically resized to fit most applications. Defaults can be specified, including several types of uniquely-generated avatars including identicons, wavatars, and the 8-bit inspired “retro” avatars. Let’s take a look at how easy it can be to implement Gravatar in your next project, shall we?

Continue reading→

Quick Tip: JavaScript Resize Timer

I wanted to share a little trick that I use a lot when building responsive sites that can be a huge help for your front-end performance, which I call the “resize timer”:

Imagine the following scenario: you have a series of horizontally-aligned boxes on your page, which should be equal height. Of course, this is easy to pull off with Flexbox, but browser support isn’t exactly where we want it just yet. Use it where you can, of course, but you might still need a JavaScript-based fallback for older browsers.

Continue reading→

On Price Matching

Tonight I made a rare venture to my nearby shopping mall to pick up some near-last-minute Christmas presents, namely Assassin’s Creed Rogue for my brother. My first stop was Target (as I needed to get a few other things), but I came up empty handed with respects to the game. Begrudgingly, I wandered over to the nearby video game retailer, which was filled to the brim with teenagers and younger twenty-somethings feeding their gaming habits so hard there were practically needles sticking out of their arms.

Continue reading→

Page 10 of 14

Be excellent to each other.