Category Archives: Technology

Blogposts on blog.futtta.be about internet, web developement, browsers, security, linux, …

Autoptimize Power-Up sneak peek; Critical CSS

So although I am taking things rather slowly, I am in fact still working on Power-Ups for Autoptimize, focusing on the one most people were asking for; critical CSS. The Critical CSS Power-Up will allow one to add “above the fold”-CSS for specific pages or types of pages.

The first screenshot shows the main screen (as a tab in Autoptimize), listing the pages for which Critical CSS is to be applied:

The second screenshot shows the “edit”-modal (which is almost the same when adding new rules) where you can choose what rule to create (based on URL or on WordPress Conditional Tag), the actual string from the URL or Conditional Tag and a textarea to copy/ paste the critical CSS:

ao_critcss_edit

The next step will be to contact people who already expressed interest in beta-testing Power-Ups, getting feedback from them to improve and hopefully make “Autoptimize Critical Css” available somewhere in Q3 2016 (but no promises, off course).

Quick KeyCDN’s Cache Enabler test

cache enablerCache Enabler – WordPress Cache is a new page caching kid on the WordPress plugin block by the Switzerland-based KeyCDN. It’s based in part on Cachify (which has a strong user-base in Germany) but seems less complex/ flexible. What makes it unique though, is it that it allows one to serve pages with WEBP images (which are not supported by Safari, MS IE/ Edge or Firefox) instead of JPEG’s to browsers that support WEBP. To be able to do that, you’ll need to also install Optimus, an image optimization plugin that plugs into a freemium service by KeyCDN (you’ll need a premium account to convert to WEBP though).

I did some tests with Cache Enabler and it works great together with Autoptimize out of the box, especially after the latest release (1.1.0) which also hooks into AO’s autoptimize_action_cachepurged action to clear Cache Enabler’s cache if AO’s get purged (to avoid having pages in cache the refer to deleted autoptimized CSS/ JS-files).

Just not sure I agree with this text on the plugin’s settings page;

Avoid […] concatenation of your assets to benefit from parallelism of HTTP/2.

because based on previous tests by smarter people than me concatenation of assets can still make (a lot of) sense, even when on HTTP/2 :-)

The optimism of a pull request

I was getting old yesterday,with pessimism taking over. But then there’s that Git pull request on your open source project, from an Argentinian developer you don’t know at all. And you discuss the idea and together you build on it, step by step and the merged result is an enrichment not only for your little software-project, but also for you personally. Because it reminds you that too is the web; a place where people collaborate for nothing but the selfless desire to improve things. Thanks for reminding me Pablo!

Stephen Fry off the grid (but on Autoptimize)

Stephen Fry wrote an insightful critique about the what the web was and what it has become:

The real internet [as opposed to AOL] was that Wild West where anything went, shit in the streets and Bad Men abounding, no road-signs and no law, but ideas were freely exchanged, the view wasn’t ruined by advertising billboards and every moment was very very exciting.

[…]

I and millions of other early ‘netizens’ as we embarrassingly called ourselves, joined an online world that seemed to offer an alternative human space, to welcome in a friendly way (the word netiquette was used) all kinds of people with all kinds of views. We were outside the world of power and control. Politicians, advertisers, broadcasters, media moguls, corporates and journalists had absolutely zero understanding of the net and zero belief that it mattered. So we felt like an alternative culture; we were outsiders.

Those very politicians, advertisers, media moguls, corporates and journalists who thought the internet a passing fad have moved in and grabbed the land. They have all the reach, scope, power and ‘social bandwidth’ there is. Everyone else is squeezed out — given little hutches, plastic megaphones and a pretence of autonomy and connectivity. No wonder so many have become so rude, resentful, threatening and unkind. […]

The radical alternative now must be to jack out of the matrix, to go off the grid. […]

I live in a world without Facebook, and now without Twitter. I manage to survive too without Kiki, Snapchat, Viber, Telegram, Signal and the rest of them. I haven’t yet learned to cope without iMessage and SMS. I haven’t yet turned my back on email and the Cloud. I haven’t yet jacked out of the matrix and gone off the grid. Maybe I will pluck up the courage. After you …

While not off the grid yet, Stephen Fry blogs on WordPress and his blog uses my own little Autoptimize plugin. Let that be my proudest boast of the day. Sorry Stephen …

Is the web doomed?

Off course the web is not doomed, but despite the fact that web performance is immensely important (think impact on mobile experience, think impact on search engine ranking, think impact on conversion) the web keeps getting fatter, as witnessed by this graph from mobiforge;

web-page-size-revisited-revised

Yup; your average web page now has the same size as the Doom installer. From the original mobiforge article;

Recall that Doom is a multi-level first person shooter that ships with an advanced 3D rendering engine and multiple levels, each comprised of maps, sprites and sound effects. By comparison, 2016’s web struggles to deliver a page of web content in the same size. If that doesn’t give you pause you’re missing something.

There’s some interesting follow-up remarks & hopeful conclusions in the original article, but still, over 2 Megabyte for a web page? Seriously? Think about what that does that do to your bounce-rate, esp. knowing that Google Analytics systematically underestimates bounce rate on slow pages because people leave before even being seen by your favorite webstats solution?

So, you might want to reconsider if you really should:

  • push high resolution images to all visitors because your CMO says so (“this hero image does not look nice on my iPad”)
  • push custom webfonts just because corporate communications say so (“our corporate identity requires the use of these fonts”)
  • use angular.js (or react.js or any other JS client-side framework for that matter) because the CTO says so (“We need MVC and the modularity and testibility are great for developers”)

Because on the web faster is always better and being slower will always cost you in the end, even if you might not (want to) know.

Reviewing bad reviews when in a bad mood

So now and again people try out Autoptimize in a … clueless manner, see things breaking, deactivating it immediately (no problem up to that point) and posting a bad review. In general I will patiently reply that they can fix almost any issue themselves using the settings-screen and that there’s info in the FAQ and I’ll even troubleshoot for them if they’re kind of nice. This gentle and helpful approach has, in the past, already resulted in updated, raving reviews and can only be highly recommended.

But sometimes I’m just in a bad mood, and I post an rant like this one;

Zoukspot
★☆☆☆☆ You’re doing it wrong

If I could review your review, the title would be “you’re doing it wrong”. Because, you are indeed doing it wrong @zoukspot, on multiple levels.

First and foremost; optimizing JavaScript can be tricky and it is not uncommon to have to adjust AO (or any JS-optimizer) configuration to fix things. So if you have a problem in your context (beaverbuilder) and you don’t configure AO to fix that problem but simply deactivate AO instead, then you’re doing it wrong.

But your doing it wrong on another level as well;
1. If something (say a plugin) doesn’t work, you’re supposed to look at the controls (in this case, the settings page) to see if you can fix it there (spoiler: I’m 100% this is fixable without having to deactivate AO entirely).
2. If you can’t find your way around those controls (the settings-page) you’re supposed to look in the manual (in this case; the FAQ). RTFM, as they used to say in the days of yore.
3. If the manual (that great FAQ) doesn’t help you fix your stuff, you could ask customer service (in this case; the forum) for assistance. I tend to “hang out” there quite often and am very responsive.

If you’ve gone through these steps and you still can’t get your something (a plugin) working and you feel you haven’t received the support you think you’re entitled to, then (and as far as I’m concerned, only then, but I might be biased) you can post a negative review about how bad that piece of junk broke your site.

Now I can’t know for sure if you had a look at the settings page or the FAQ (although I would very much doubt that), but I know for a fact that you haven’t sought help for your problem. So why, might I ask, are you posting a 3-star review if you clearly did no effort to look for a solution for your problem yourself?

Based on all of this, I can only rate your review with 1 star. I will gladly reconsider my review, if you reconsider yours.

(sorry, bad day at the office and kind of frustrated about pointless reviews like these. you’re not the first, you won’t be the last, but you happened to be in the wrong place at the wrong time. no hard feelings. well, not a lot of them anyway ;-) )

But all will be better tomorrow and I’ll be patient and helpful once again, I promise!

About Insanely Stupid Code

When looking into a JS-problem on an Autoptimized site, it turned out missing semi-colons messed things up. Missing semi-colons make JS un-minifyable, as eloquently explained by master-minifier and JS-guru Douglas Crockford in this Bootstrap issue from back in the day;

That is insanely stupid code. I am not going to dumb down JSMin for this case.