Fix Ogg Files Corrupted By Easytag

Last week, I noticed that some of my music files would no longer play in Clementine or Rhythmbox (both of which use Gstreamer). I got the error below when I attempted to play the files:

Internal data stream error.

When I checked the affected files, all of which were Oggs, with oggz-validate (part of the package oggz-tools), I saw errors like this:

-00:00:00.002: serialno 1824847231: Packet out of order (previous 00:00:00.564)
-00:00:00.002: serialno 1824847231: Granulepos decreasing within track

Ogginfo (in the package vorbis-tools) reported the error as follows:

Negative or zero granulepos (-104) on Vorbis stream outside of headers. This file was created by a buggy encoder

I knew I had played the affected files successfully before, so it was clear something I had done recently caused the problem. Easytag was the answer.

Continue reading “Fix Ogg Files Corrupted By Easytag”

Firefox Screenshots: It Doesn’t Get Any Easier Than This

Firefox Screenshots Toolbar Icon

I’ve been a Firefox fan for years. In my experience, Firefox just keeps getting better. I used to use the Firebug extension for developer tools, then Mozilla included native developer tools in Firefox 27, allowing me to run one less extension. The Eyedropper was added to Developer Tools in Firefox 31, which makes grabbing color codes from a site I’m developing a snap. Now, Mozilla has added Firefox Screenshots, which gave me another one of those “Oh, cool!” software-feature moments.

Continue reading “Firefox Screenshots: It Doesn’t Get Any Easier Than This”

Social Media Icons For Mobile Devices On Woocommerce’s Storefront Theme

Social Media Icons For Mobile Devices On Woocommerce Storefront

Woocommerce has kindly provided a Codex snippet to add social media icons to the Storefront theme. Their approach creates a very nice-looking social media icon menu; however, on displays less than 768 pixels in width, the Storefront theme hides the secondary navigation menu location used. Mobile devices using smaller displays end up with no social media icons.

The Storefront theme is a responsive theme, so it really should have the capability to display social media icons at all resolutions. I didn’t even notice there weren’t any until a client pointed it out to me.

Continue reading “Social Media Icons For Mobile Devices On Woocommerce’s Storefront Theme”

Send a Notification Email When a Woocommerce Customer Changes Their Address

Envelope

I have a client who runs a subscription-based business on a WordPress site using Woocommerce. Since some of his subscriptions last a year or more, increasing the likelihood that a customer’s address might change, he wanted to be notified by email if the customer used the Woocommerce change-of-address form.

While it’s possible to add a custom email notification class so that the email notification will show up in Woocommerce -> Settings -> Emails, I really just needed something simple, and didn’t mind that the recipient email address would be hard-coded. I came up with the following code snippet, which does the trick in WordPress 4.6 and Woocommerce 2.6.4.

Continue reading “Send a Notification Email When a Woocommerce Customer Changes Their Address”

Contact Form 7: Set the Default Value for Select Fields Using the URL

Contact Form 7 and Default Select from URL Variable

Contact Form 7 is my favorite contact form plugin for WordPress. Not only is it well-documented on the developer’s web site,  but it offers a plethora of valuable features that have made it my go-to contact form. One of those features is Contact Form 7’s ability to use variables in the URL ($_GET variables) to set the default value for email form fields.

Contact Form 7’s documentation explains in detail how to set the default value of text fields to $_GET variables passed in the URL; however, as of this writing, it doesn’t tell you that you can also set the default value of a select field by passing the value of the field in the URL.

Continue reading “Contact Form 7: Set the Default Value for Select Fields Using the URL”