Published

On archiving/preserving websites

SB and I have been chatting about the whys, whens and hows involved in archiving a website. Archiving is always an uphill battle. It’s hard to take care of things as they age no matter what the material, and ageing code comes with a specific set of worries.

Read more

Published

Walker blog interview with Maximage

Walker blog interview with Maximage

I asked SB about people/studios that push the offset printing process when we were discussing a potential litho print last week, and he mentioned Berlin-based collective Maximage. The 2013 interview in the Walker design/art blog (linked above) sheds light on their interest in intervention.

Photo of the cover of Acid Test by Maximage

The cover of Acid Test, 2010. Image from Swiss Design Awards (image source)

Published

Regarding single speed bicycle assembly

I need a bike that I’m comfortable with for getting around London. My Claud Butler steel mixte frame is in good condition and I’ve always wanted to learn more about bikes, so I’ve started to replace the heaviest and most problematic bits myself. Over time, the project evolved in to a single speed conversion. The notes below are an overview of the work and research I’ve done thus far. Expect misused terminology ahead, bumps in the road, etc.

Read more

Published

The Peter Principle in management theory

I had a spectacularly inarticulate moment recently trying to recall a management concept I read about a while back. By chance, I came across it today, so note to self: the Peter Principle is the theory you’re looking for. “Managers rise to the level of their incompetence”, or “anything that works will be used in progressively more challenging applications until it fails”.

Published

Snippet for LazyLoad + Spin.js

/**
 * Identify images by class. For each image, add 
 * [Spin.js](http://fgnass.github.io/spin.js/) to parent, [LazyLoad](http://verlok.github.io/lazyload/) image, stop spinner 
 * when image is loaded.
 */

var imgClass = "lazy";

var spinOpts = {
  // [Spin.js options](http://fgnass.github.io/spin.js/#usage)
};

var spinners = [];
var elems = document.getElementsByClassName( imgClass );
for ( var i = 0; i < elems.length; i++ ) {
  var pId = "lazy-" + ( i + 1 );
  var parent = elems[i].parentElement;
  parent.id = pId;
  spinners[pId] = new Spinner( spinOpts ).spin( parent );
}

var lazyLoad = new LazyLoad( {
  elements_selector: "." + imgClass,
  callback_load: function( element ) {
    var spinner = spinners[element.parentElement.id];
    if ( spinner ) {
      spinner.stop();
    }
  }
} );

For use with LazyLoad by Andrea Verlicchi and Spin.js by Felix Gnass. SB and I have both checked out a few different lazyloading plugins, we’re pleased with how this one works with srcset.

Since the default positioning of Spin.js centres the spinner in the element, it’s best for the image to be the only child of the parent element. The code above assumes that this is the case. If I didn’t have control over the markup or needed to individually wrap each image for any other reason, would probably implement something similar to the above w/ jQuery (see the Spin.js jQuery plugin).