As found on the web (March 26th)

blog (feed #46)
generic (feed #49)
generic (feed #49)
generic (feed #49)
blog (feed #46)
generic (feed #49)
generic (feed #49)
generic (feed #49)
generic (feed #49)
youtube (feed #48)

Avoid iframe-scrollbars with squeezeFrame.js

I know, this seems to have become an obsession of mine, but here I am again with a follow-up on my iframes-tips blogpost. You might remember I advised against disabling scrollbars on iframes, because;

Disabling them will render the iframe partially inaccessible for some of your users, because the size your iframe-content needs, depends on things outside your control such as operating system & versions (e.g. font & screen resolution), browser (e.g. css-implementation) and browser configuration (e.g. non-default font-size).

But what if you could resize (generally: zoom out) the iframe-content to perfectly fit the available width and height, thus avoiding vertical and especially horizontal scrollbars? Well, that is exactly what squeezeFrame.js tries to do (using css zoom and -moz-transform:scale in Firefox)! Just include the javascript-file in the iframe-content page and set a few options if you want to change the default behavior (which is: zoom in/out for width only, max. + or – 5%).
squeezeFrame.js was tested successfully in Firefox 3.6, IE6, Safari4 and Chrome4, but does not work in Opera 10.5. More info (including some “known issues”) can be found on the demo-page and in the javascript-code off course.
As always; reply in the comments or contact me if you find bugs or have problems.

ORI vouwfiets geplooid en gewogen

ori MI8 (of is het M9?)Eergisteren plat gereden met m’n Vero in Brussel, de nochtans bijzonder stevige maar vooral nieuwe buitenband bleek grondig naar de knoppen. Ik heb m’n fietsje dus binnengebracht bij Mobibikes en daar kreeg ik als vriendelijke maar ongetwijfeld ook commercieel verantwoorde geste ter vervanging een Ori MI8 in de handen gestopt. Als Christophe hoopt op een vermelding op m’n blog, heeft hij geluk, want dit lijkt wel heel sterk op een blogpost over Ori vouwfietsen, niet?
De Ori (ook verkocht als Mezzo) is even Brits als oer-vouwer Brompton en werd ontworpen door ex-Benetton F1 ingenieur Jon Whyte (die eerder ook al “full rear suspension” MTB’s voor Marin tekende). De MI8 lijkt overigens op een modernere versie van z’n befaamde stalen landgenoot (kijk maar op deze foto), met een scharnierloos monocoque aluminium frame met zelfsluitende koppelingen aan  achter- en voorwiel, Shimano Nexus 8-speedpotversnellingen” en een heel strak design dat mooi assorteert met m’n zwarte fietsmuts.
Enkele korte ritjes maken geen uitgebreide test, maar ik kan wel zeggen dat de overstap van m’n Vero (Dahon) naar de Ori MI8 niet zonder slag of stoot ging. Ge had me moeten horen vloeken toen ik dat klereding op de trein niet proper opgeplooid kreeg. En de goeie raad van de conducteur, heel de weg tussen Lokeren en Dendermonde, hielp ook voor geen meter. Het kan nochtans best snel, kijk maar:

Folding an Ori foldingbike really fast

En inderdaad, ik ben over de middag nog even gaan oefenen en dat ging al heel wat vlotter. Voor de rest is de afstand tussen het zadel het stuur de stuurpen betrekkelijk klein, maar al bij al is de Ori MI8 een knappe, lichte en snelle vouwfiets. Een ideaal opstapje naar een Birdy, misschien?

As found on the web (March 19th)

generic (feed #49)
generic (feed #49)
generic (feed #49)
blog (feed #46)
youtube (feed #48)
Liked 2 videos.
generic (feed #49)
generic (feed #49)
youtube (feed #48)
generic (feed #49)
generic (feed #49)

x-frame-options coming to a Firefox near you

Microsoft IE8 introduced it, Apple Safari4 has it, Google Chrome4 does it and now somewhere in the not too distant future, Firefox will ship it too; support for X-FRAME-OPTIONS.
X-cuse-me? Well, X-FRAME-OPTIONS is the HTTP response header that broke Google Talk chat badge a few months ago, remember? It allows you to specify whether your site or page can be (i)framed or not, by setting it to “DENY” (not allowed to be framed) or “SAMEORIGIN” (allowed if the framing site is on the exact same domain). The most important reason for this functionality is as a prevention-mechanism for “clickjacking” (a.k.a. UI redressing), a type of web attack that tries to trick victims into clicking a framed site by hiding it behind another innocent element.
So now that feature is finally coming to Firefox as well; Mozilla’s Brendan Sterne, one of the driving forces behind Mozilla’s much broader content security policy, grabbed the bug by the balls and came up with a first patch. If all goes well, this would be an ideal candidate to get pushed out with a minor version update as per the new release process, no?

As found on the web (March 16th)

blog (feed #46)
generic (feed #49)
generic (feed #49)
generic (feed #49)
generic (feed #49)
Posted SVG Wow!.
generic (feed #49)
blog (feed #46)
youtube (feed #48)
Liked 2 videos.
generic (feed #49)
youtube (feed #48)
generic (feed #49)

Speed up your (WordPress-)site!

Google likes fast! Visitors like fast! So why don’t you go make your site really fast?
Suppose you just bought yourself hosting and you just installed WordPress for blogging or lightweight-CMS-purposes, how can you improve your site’s performance in that case? Easy!

  1. speed up PHP: use a caching optimizer (I use APC) to significantly speed up PHP performance (don’t bother  signing up for shared hosting with a company that doesn’t offer PHP with acceleration).
  2. cache dynamic output: install the “WP Super Cache” WordPress plugin. Configure and then forget about it; if you create/edit a blogpost, impacted pages are automatically removed from cache.
  3. optimize CSS and JS: install the “CSS JS booster” WordPress plugin, which (amongst other things) grabs all CSS and JS from WordPress and Plugins and outputs it in one CSS- and one JS-file (some plugins, e.g. Sociable and WordPress Mobile Pack, might need tweaking of the css media-attribute though) UPDATE: CSS JS booster has not been updated since 2010 and I switched to (and later even took over development of) Autoptimize for JS, CSS & HTML optimization.
  4. avoid calling 3rd party javascript: tracking (e.g. Google Analytics, which I removed), widgets (e.g. Twitter badges) or other 3rd party gadgets (e.g. AddToAny, which I removed) can slow down your site’s performance significantly
  5. optimize images: fire up your favorite photo editor and make that image just a bit smaller, use an acceptable level of compression (I end up between 70 and 80% for JPEG’s, depending on the image) and upload to smushit.com to squeeze out the last optimization-drop (example; I used a 20KB picture from Flickr, resized it to 80%, saved it with 77% compression and smushed it to end up with a mere 6KB).

The impact of a number of these steps can be measured easily; below are the response times of my blog’s homepage (the  html including css, js and images) as measured by Pingdom Tool’s Full Page Test.

  1. default WordPress (on a Linux VPS with 320Mb RAM memory): 6.5 seconds
  2. (1)  with PHP APC activated: 4.1 seconds
  3. (2) with WP Super Cache: 3.1 seconds
  4. (3) with CSS JS Booster: 1.3 seconds

So there you have it, from 6.5 to 1.3 seconds in only 5 easy steps! WordPress specific, but easily applicable to other platforms as well. Now go and make your site fast! And then go and make it even faster!

Fix iframe-positioning problem with frameMagic.js

A short followup on my previous post about iframes; as I happen to like simple drop-in solutions, I updated the javascript that handles the ‘blank 2nd page in an iframe bug’ to automagically work upon inclusion in the html.
So if you happen to have problems with the positioning of 2nd (or later) pages in iframes (due to the top part of the iframe not being visible in the ‘viewport’), just upload frameMagic.js to your webserver and add the following to the head of your html to ease your iframe-blues;

<script type="text/javascript" src="path/to/frameMagic.js"></script>

Optionally you can specify which iframes are to be treated this way (excluding the other ones) by doing

<script type="text/javascript">
var fM_conf="iFrame1,iFrame3";
</script>

You can find more information and examples on http://futtta.be/frameMagic.

As found on the web (March 9th)

generic (feed #49)
blog (feed #46)
facebook (feed #40)
Frank mobistar adsl kaput (een kink in belgacoms koperdraad?), wilde android’s "mobile connection sharing" gebruiken om op m’n winxp laptop naar buiten te gaan, maar dat zou te makkelijk geweest zijn, niet? inderdaad: windows kan geen dns resolven, dus surf ik via een socks-proxy over de ssh-verbinding met m’n linux vps-machine. of samengevat: mobistar (be) -> france telecom (fr) -> hosteurope (de) -> facebook (usa).
blog (feed #46)
generic (feed #49)
generic (feed #49)
generic (feed #49)
youtube (feed #48)