Category Archives: lang:en

Blogposts on blog.futtta.be in English (mostly because these posts are republished in a non-Dutch-speaking context).

Music from Our Tube; Bill Evans’ Peace Piece

Although I feel time has not been kind to Laurent Garnier’s music (it sounds rather dated now, but it could just as well be me getting old), but I do love listening to his “It is what it is”-radioshow on Radio Meuh which he duefully also uploads to his SoundCloud-account. Garnier’s musical taste, which he displays in his radioshow, is that broad that every show there’s at least one song that I get all excited about. This time it’s a solo improvisation from Bill Evans from back in 1958, titled “Peace Piece”. So beautiful!

Bill Evans "Peace Piece"

Watch this video on YouTube.

WordPress 4.7 custom background image bug & workaround

If you encountered this bug but are not using Autoptimize, leave a comment below or contact me here. Your info can help understand if the regression has an impact outside of Autoptimize as well!


Gotta love Sarah, but there’s a small bug in Vaughan’s (WordPress 4.7) that breaks (part of the CSS) when Autoptimized. If you have a theme that supports custom backgrounds (e.g. TwentySixteen) and you set that custom background in the Customizer, the URL ends up escaped (well, they wp_json_encode() it actually) like this;

body{background-image: url("http:\/\/localhost\/wordpress\/wp-content\/uploads\/layerslider\/Full-width-demo-slider\/left.png");}

Which results in the Autoptimized CSS for the background-image being broken because the URL is not recognized as such. The bug has been confirmed already and the fix should land in WordPress 4.7.1.

If you’re impacted and can’t wait for 4.7.1 to be released, there are 2 workarounds:
1. simple: disable the “Aggregate inline CSS”-option
2. geeky: use this code snippet to fix the URL before AO has a change to misinterpret it;

add_filter('autoptimize_filter_html_before_minify','fix_encoded_urls');
function fix_encoded_urls($htmlIn) {
	if ( strpos($htmlIn,"body.custom-background") !== false ) {
		preg_match_all("#background-image:\s?url\(?[\"|']((http(s)?)?:\\\/\\\/.*)[\"|']\)?#",$htmlIn,$badUrls);
	  	if ($badUrls) {
			foreach ($badUrls[1] as $badUrl) {
				$htmlIn = str_replace($badUrl, stripslashes($badUrl), $htmlIn);
			}
		}
	}
  	return $htmlIn;
}

Music from Our Tube; James Bittersweet Lewis Trio

Just picked up on Worldwide FM; James Brandon Lewis Trio featuring Anthony Pirog and Nicholas Ryan Gant (aka @ghetto_falsetto). Kind of mellow-y, which I’m not always into, but duet of Lewis’ tenor-sax and the Gant’s falsetto scatting makes for a great mix, keeping the feeling fresh and real.

Bittersweet

Watch this video on YouTube.

And if you want to something more in-your-face; have a go at “No Filter” by the same trio. Just tenor-sax, bass & drums, but you’ll be headbanging as if you were on the front-row of a metal-festival.

So how does Autoptimize work anyway?

A question that has come up a couple of times already is how Autoptimize and it’s cache work. So let’s do some copy/pasting of what I replied earlier on the wordpress.org support forum;

  1. AO intercepts the HTML created by WordPress for a request (using the output buffer)
  2. all references to JS (and CSS) are extracted from the HTML
  3. all original references to JS (and CSS) are removed from the HTML (the code in the original files is left as is, AO never changes those files)
  4. all JS (and CSS) is aggregated (JS in one string, CSS in as many strings as there were media types)
  5. the md5-hash (mathematical/ cryptographic function that generates a quasi-unique string based on another string) of the aggregated JS (and CSS) is calculated
  6. using the md5 AO checks if a cached file with that md5 exists and if so continues to step 8
  7. if no cached file is found, the JS (and CSS) is minified and cached in a new file, with the md5 as part of the filename
  8. the links to the autoptimized JS (and CSS) file in cache are injected in the HTML
  9. the HTML is minified (but not cached in Autoptimize)
  10. the HTML is returned to WordPress (where it can be cached by a page cache and sent to the visitor)

This is especially interesting if you want to understand why the cache size can “explode”; if in step 4 the code is even a bit different from previous requests, the md5-hash in step 5 will be different so the file will not be found in cache (step 6) and the code will be re-minified (which is relatively expensive) and cached (step 7).

And that, my friends, is how Autoptimize works.

Music from Our Tube; Handsome Boy Modeling School ft. Roisin Murphy

It’s frustrating how much great music I just miss out on. Take this ‘ancient’ (as in last-century-ancient!) track by Handsome Boy Modeling School, “The Truth” featuring Roisin Murphy and J-live, which I did not even know existed until I heard it on Radio Nova a couple of days ago …

Handsome Boy Modeling School – The Truth (feat. Roisin of Moloko & J-Live)

Watch this video on YouTube.