Steve Grunwell

Open-source contributor, speaker, and electronics tinkerer

Page 12 of 14

Seicon Limited

Seicon Limited is an engineering company in Central Ohio that specializes in vibration and shock control. Perhaps best known for its vibration-reducing ØVIB Washer Stand, Seicon also offers a similar product for HVAC installation. Buckeye Interactive has been maintaining the various Seicon sites (seiconlimited.com, 0vib.com, and hvacisolator.com) for years, but in 2014 Seicon made the decision to combine its sites into a single, cohesive experience and offer a single store for all of its products.

Continue reading→

Mustache Auction

A Laravel app to let people bid on different mustache styles, with all bids going to support Buckeye Interactive’s Movember campaign.

Continue reading→

Automatically Restart PHP-FPM During Deployments

At work we’ve been rolling out PHP-FPM to more and more of our clients’ servers, which has been great for performance and keeping server loads down. The only issue we’ve had (beyond some initial configuration) was related to our deployments: many of our projects, especially our web applications, are deployed through Capistrano, a Ruby-based task runner that’s extremely popular among the Ruby on Rails crowd. While Capistrano let’s us reduce deployments to running cap production deploy, PHP-FPM typically needs to be restarted before it will start using the new code.

Having to manually SSH into a server to restart PHP-FPM after a deployment takes some of the sexy out of one-line deployments, so we sought to find a better way. The goal: be able to restart PHP-FPM (sudo service php5-fpm restart) from within a Capistrano task without being prompted for passwords (we use Public-Key authentication) or having to manually SSH in to restart the server.

Continue reading→

Laravel Application Environments without Hostnames

Forgive me if this is old news, but hostname-based environment switching isn’t as nice as it could be; I like using *.dev for my development environments, but other people I know like  *.development, *.local, etc. The truth of it is the more developers you have working on a project the higher chance you run of the application being run at a variety of hostnames, mucking up your bootstrap/start.php file.

Fortunately, Laravel doesn’t force us into using hostname-based environment switching. At work we’ve developed this little workflow, and it seems to be working really well.

Continue reading→

Automatically Set a Poster Image for WordPress Video Embeds

I’m working on a client project right now that makes heavy use of embedded videos. It’s exciting because as someone who primarily develops themes and plugins for marketing sites (and whose personal blog is almost exclusively text and code) it’s rare that I really spend much time with the rich-media embeds that have been getting so much attention from the core team over the last few releases.

As I started playing with the video embeds I immediately noticed an issue – there was nothing in the media widget that allowed authors to set a poster frame (the static image that appears in the video player before the user clicks the play button). I checked the documentation for the

[video]

shortcode and found that the shortcode does accept an optional poster attribute, which allows authors to specify a poster image.

Continue reading→

Gravity Forms Duplicate Prevention

Prevent duplicate Gravity Form submissions with this simple WordPress plugin. No changes are required to existing Gravity Forms, and the plugin will work with or without JavaScript enabled.

Continue reading→

Kid Turn In

Before taking a family trip to Disney World in the spring of 2013 with his daughter and nephews, Buckeye Interactive President Brad Griffith prototyped a quick application called Kid Turn In. With the application he would print a temporary tattoo with a QR code that, upon being scanned, would send an alert with the scanner’s location to the adults on the trip. These tattoos were applied to the children in the hopes that if they were to be separated from the group a good samaritan would scan the tattoo (the kids had been instructed to point out the tattoo if they got lost) and the parents would be more quickly reunited with the little one.

Continue reading→

Growing a Mustache for Men’s Health

This November I’ll be participating in Movember with my co-workers at Buckeye Interactive. Movember is a 30-day event where men grow mustaches in order to raise awareness of and money for men’s health issues, namely prostate and testicular cancers – you can think of it kind of like a 5k cancer run but on men’s upper-lips.

Continue reading→

Quick Tip: Restrict a WooCommerce Shipping Method to the Contiguous United States

Right now at work I’m working on moving a site from WP eCommerce to WooCommerce and encountered an interesting request: the site offers free shipping but only to the lower 48 United States. That means no free shipping for Alaska, Hawaii, Puerto Rico, etc.

Out of the box WooCommerce supports country-based filtering (e.g. allow free shipping to the United States but not Canada) but to get into more specific restrictions you’d have to start messing with shipping tables or buying the Advanced Shipping Rates plugin which, although I’ve heard good things, will set you back $200.

Fortunately I was able to put together a code snippet that will remove a shipping method (in this case, free shipping) for restricted states. It consists of two parts: a class that extends the WooCommerce core shipping class (WC_Shipping_Free_Shipping for this example) and a filter that tells WooCommerce to use our class rather than the core shipping class it extend Post has been updated to work with newer versions of WooCommerce.

Continue reading→

New speaking section

A bit late considering I gave two talks in the last week but I’ve added a “Speaking Engagements” section to the site. I’m relatively new to professional speaking but am looking for more opportunities to share what I’ve learned. If you’re interested in having me speak at your event, please get in touch!

Continue reading→

Page 12 of 14

Be excellent to each other.