Category Archives: Internet

All blogposts on about Internet (browsers, web development and mobile web).

More goodness in plugin repo updates

Seems like the plugin pages, after recent improvements to the ratings-logic, now got an even more important update. They now use “active installations” as most important metric (as has been done on module pages for years), with total number of downloads having been relegated to the stats page.

That stats page got a face-lift as well, featuring a graph of the active versions:

autoptimize plugin page

In case you’re wondering what the source of that “active installations” data is, I was too and reached out to plugin-master Otto (Samuel Wood, who replied;

[The source data comes from] plugin update checks. Every WP install asks for update checks every 12 hours or so. We store a count of that info. plugin repo: ratings changed

autoptimize ratings on feb 26th 2015Yesterday the average rating of all plugins on the repository changed; ratings that were not linked to a review, were removed. That means that ratings dating from before approximately November 2012, when reviews were introduced, are not being taken into account any more.

This had a positive impact on the average rating of my own plugins, but especially so for Autoptimize. That plugin was largely unsupported before I took over in January 2013 and got some low ratings as a consequence (the average was 4.2 at the time, if I’m not mistaking). With those old numbers now out of the way, the average went from 4.6 to 4.8 overnight. Yay!

User Agent Madness

Just found this one in my http logfile;

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 OPR/27.0.1689.69

So one User Agent string mentioning 4 browsers (Mozilla, Safari, Chrome and finally Opera 27, which is the actual browser) and 3 rendering engines (Applewebkit, KHTML and Gecko)? There is a lot of web-history in those 127 characters.

Wanted: testers for WP YouTube Lyte (the one with the new YT API)

As I wrote a couple of weeks ago, YouTube is shutting down their old v2 API, forcing WP YouTube Lyte to swith to v3. The main change; users will have to get an API key from Google and provide that in the Lyte settings page.

Initial development & testing has been done (this blog switched already) and I now need some brave souls to test this. You can download the “beta” from and report back here or on the support forum about how that did or did not work for you.

Looking forward to having to fix some nasty bugs until everything will finally be in it’s right place once again ;-)

Osunlade ft Erro Everything In Its Right Place

Watch this video on YouTube or on Easy Youtube.

What does a webtech addict do when in a Tesla?

Tesla Model S infotainment panelWell, checking out the browser, off course!

I had the opportunity to ride along with a friend in his brand new Tesla yesterday. Great ride, but you know that already, so I checked out the browser and data connectivity obviously. I visited my own little “ip check” page and saw this in the logfile: – – [05/Feb/2015:12:17:24 +0100] “GET /check_ip.php HTTP/1.1″ 200 132 “-” “Mozilla/5.0 (X11; Linux) AppleWebKit/534.34 (KHTML, like Gecko) QtCarBrowser Safari/534.34″

Breaking it down:

  • The free mobile data connectivity is provided by KPN (Base) in Belgium (and Holland, probably).
  • As per the useragent the car display runs on Linux (that little OS that could is really everywhere these days)
  • The browser is QtCarBrowser, which would obviously be built with QT and WebKit. Based on the WebKit version, one can deduct that the version of QT uses is 4.8. As such, QTCarBrowser seems very similar to QTWeb and might indeed be based on it. rates QTWeb with 204/555, but Tesla’s QTCarBrowser result might still be different off couse.
  • The WebKit-version, 534.34, is pretty old and as such dates from mid 2011 (QT 4.8 was released in December 2011). This is close to the version that was used in Safari 5.1 (534.48.3).

I sure hope there are not too many vulnerabilities in those old version of of QT and WebKit, but one does not drive a Tesla to browse the internet, does one? ;-)

WP YouTube Lyte and YouTube API v2 end of life

The YouTube API v2 is now officially to be shut down soon after April 20th. That’s bad news for WP YouTube Lyte, which uses this version of the API to perform unauthenticated read-only requests to fetch a.o. video title and thumbnail information (example here). The v3 API is supposed to simpler yet more powerful and migrating should not be a big problem, except for that little detail that v3 doesn’t allow unauthenticated requests at all. So I’ll need to add authentication (via an API key) to the mix, leaving me with the dilemma of having to choose between these approaches, none of which I really like:

  1. Tell WP YouTube Lyte users to get their own API key and have them enter it in the plugin’s settings-page. Risk: upsetting users who all of a sudden have to get an API key (“huh, what key?”)
  2. Get an API key myself and hardcode that in WP YouTube Lyte. Risk: abuse of that key (and neither a server key nor a browser key is applicable really), reaching limits, being denied access.
  3. Create and operate a proxy application that sits between the v3 API and each and every WP YouTube Lyte instance, taking care of authentication with an API key. Risk: having to write & install that proxy application, making sure it is available 24/7 (it’s a single point of failure) + obviously the same abuse-risk as in (2).

No, I’m definitively not happy … :-(

Fixing Firefox’ LessChromeHD to reclaim lost screen real estate

I had been happily auto-hiding the Firefox navigation bar on my small-screen netbook for a couple of years already, until that add-on (LessChromeHD from the Prospector series) stopped working after having upgraded to Firefox 35. So I started Firefox from the command-line and spotted this error:

addons.xpi WARN Error loading bootstrap.js for lessChrome.HD@prospector.labs.mozilla: TypeError: redeclaration of variable event (resource://gre/modules/addons/XPIProvider.jsm -> jar:file:///home/frank/.mozilla/firefox/jy6bws91.default/extensions/lessChrome.HD@prospector.labs.mozilla.xpi!/bootstrap.js:226:8)

A quick look at the source code confirmed “event” was declared twice, once on line 210 and a second time on line 226. The fix, obviously, is simple; on lines 226-228 replace all references to “event” with e.g. “shownEvent”;

let shownEvent = document.createEvent("Event");
shownEvent.initEvent("LessChromeShown", true, false);

You can do this yourself by unzipping “lessChrome.HD@prospector.labs.mozilla.xpi” in your extenstions-folder, editing boostrap.js and updating the xpi. Or you could wait for the Mozillians to update LessChromeHD.