Dan Le Sac vs. Scroobius Pip at Paradiso, Amsterdam, 1 Apr 2010

Sweet little gig. Dan Le Sac’s big beats sounded awesome in the small Paradiso venue, and Pip’s rhymes carried more weight in person than they do on disc. Watching him perform Angles live, putting on different hats and glasses as he switches points of view in the song, added even more emotional weight to the song, and left the audience subdued… but not for long. The second part of the set built up to a huge finale that had the whole room jumping and getting “nice and sweaty.” The recorded version of Letter From God To Man has an enormous, spiky and angular outro, and Dan kept it spinning for a long time — just what the crowd wanted.

Set list:

  1. The Beat That My Heart Skipped (Angles)
  2. Sick Tonight (The Logic Of Chance)
  3. Magician’s Assistant (Angles)
  4. Look For The Woman (Angles)
  5. Stake A Claim (The Logic Of Chance)
  6. Angles (Angles)
  7. Last Train Home (The Logic Of Chance)
  8. Snob (The Logic Of Chance)
  9. Get Better (The Logic Of Chance)
  10. Thou Shalt Always Kill (Angles)
  11. Great Britain (The Logic Of Chance)
  12. Letter From God To Man (Angles)

Encore:

  1. Back From Hell (Angles)

Dutch politics is awesome

To people in the UK and US, Dutch politics can look like a confusing mess, but fortunately we have Peter-Paul Koch to explain it all.

In the web development world, ppk is well-known for his web browser compatibility tables, founding Fronteers (the Dutch professional organisation for front-end developers), and more recently his work on mobile browsers. But he is also a historian, which shows in articles like his amazing dissection of the new <time> element in HTML5, and the introductions to Dutch politics he has written over the last couple of years.

Since the fall of the Dutch government two weeks ago, ppk has created a separate blog in which he is writing lots of great stuff about Dutch political history, the political parties in play for the upcoming general election (there are many), and the ups and downs of the race itself, such as last week’s local elections.

If your Dutch isn’t good enough to read the native news sources, ppk is definitely the best source of background on this highly entertaining political contest:

Moving forward

“The arrows. What they mean is, you control who you are by moving forward, never back; you move forward. That’s what I do. That’s what we’re going to do.”

When we moved to the Netherlands in 2007, I regularly had to explain to people that I wasn’t moving back. Our decision to emigrate to the Netherlands was influenced by my childhood in Limburg, but only in the sense that it had given us knowledge and experience of many desirable aspects of Dutch culture and lifestyle — not in the sense that I was trying to return to a “home” with which I had some kind of preternatural affinity.

We didn’t sell our house in Edinburgh immediately when we moved. We had intentions of renting it out, but nothing ever came of that; we ended up selling it just a few months later. But in those months, I stayed there whenever I went back to Scotland as part of my job at Skyscanner.

My first trip back was horrible. The house felt hollow and joyless: stripped of our presence, but haunted by our old furniture. When I visited the Mother Goose Nursery, that bright and happy place where Alex and Fiona had spent much of their early years, I found that most of the staff we had known and chatted with almost every day were gone. Some had moved to different nurseries, others had quit the profession altogether. It was like someone had cut out its heart, and, by association, also a piece of mine. When I went out for pizza with my friends, the city centre of Edinburgh itself felt oppressive and threatening. Everything had changed. And by everything, I mean me.

I have continued to work remotely for Skyscanner for the last two and a half years. I have been back to Scotland regularly, and fortunately none of the trips have been as bad as that first one. Most of them have been great, in fact. Despite not being a very sociable person, I do thrive on contact with my most excellent colleagues. Spending a couple of days in the office, swimming in the pond, always energizes me. But I miss Abi, Alex, and Fiona when I’m away, and the days leading up to a trip are distorted by anxiety about leaving them. (I’m not good with departures.) Also, although remote working can be peaceful and distraction-free, it can also be lonely and impersonal. Over time, the lack of day-to-day contact was building up and making me feel invisible and ineffective.

So this is my last trip back to Edinburgh for Skyscanner. I’m starting a new job with Sogeo Company on Monday.

But just as my first trip back to Edinburgh after moving away was bad, this last one is difficult, too. I think it’s because although I am still employed by Skyscanner, I have moved forward already, and being here is being back. It isn’t the energizing experience it used to be, because I’m not trying to carry that energy back with me. Conversations with friends and colleagues feel strained, because I’m ending my involvement with something they are still right in the middle of. I’m an outsider already. Everything had changed. And by everything, I mean me, again.

Going back is not what I do. Most of the time this manifests itself in little ways, such as the being more interested in hearing my favourite artists’ new albums than in listening to their back catalogues; or a lack of inclination to scour social networks for people I haven’t spoken to in years. Other times — like now — it emerges as the feeling of alienation I’ve described above.

The quote at the top of this entry is from The Watchman by Robert Crais, and is spoken by the taciturn Joe Pike. Pike defines himself by his forward motion, and has red arrows tattooed on his deltoids as a symbol of this commitment. I don’t like needles, but I’ve never felt a stronger urge to get some ink than I do right now.

Back from Brooklyn

We are back from spending a wonderful long weekend with Patrick and Teresa. Abi and I had been to New York before, but (apart from travelling to and from the airport) we had never been out of Manhattan. This time we mostly hung out in Brooklyn, but on Monday we also zipped through Queens and the Bronx. On our way back South into Manhattan along the Henry Hudson Parkway, we were both struck by features that made us think of Lyon in France.

We ate burgers at the Shake Shack in Madison Square Park; cheesecake at Junior’s on Flatbush; clam chowder at Tony’s on City Island; and yet more burgers at the Old Town Bar on East 18th St. Patrick introduced me to Negra Modelo and tacos al pastor, and we got along famously. We visited the Tor offices in the Flatiron building; watched Avatar; hung out with Scraps and Velma Saturday evening, and the Making Light/Tor.com crowd Tuesday lunchtime.

Patrick and Teresa: thank you ever so much for having us. We had a blast.

I’ve just uploaded a bunch of photos to flickr: Mostly Manhattan, Saturday 20 Feb 2010, and Brooklyn, 21 Feb 2010. Here are some of my favourites:

Shake Shack

Flag and skyscraper; fence and camera #1

Demolition

Rainbow splash

I still love her

Marching ants in CSS

A couple of days ago I noticed that Goooogle uses a marching ants effect on their new mini-calendar event view. It highlights the target time frame for the event you’re editing, and it indicates a draggable and expandable area. (It’s probably been there for ages, but I’m slow like that.)

Marching ants effect in Google Calendar.

Being a colossal geek, the first thing I did was run up Firebug to see how they’re doing it, because there is no “border-style: marchingants” in CSS. It looks like Google is doing it with JavaScript. The area in question is bounded by four long but thin div elements (tall and narrow for the vertical borders, short and wide for the horizontal borders).

<div class="sc-ants sc-ants-top"></div>
<div class="sc-ants sc-ants-left"></div>
<div class="sc-ants sc-ants-right"></div>
...
<div class="sc-ants sc-ants-bottom"></div>

These divs sit inside a parent container with overflow:hidden, so you only see a small slice of their full extent. The border divs themselves have size, but no content. Their entire area is taken up by a 2px-wide dashed border:

.sc-ants-top  {
    border-top:2px dashed #6688EE;
    height:0;
    top:0;
    width:10000px;
}

Finally, there is a JavaScript timer that changes the position of these divs, moving them a pixel at a time to achieve the marching ants effect.

Even in native applications, marching ants are not all that common, and I think this is the first time I've seen them in a web application. Given that draggable/resizeable areas are also not all that common in web apps, I think it's a clever and elegant way of highlighting that there is something different an unusual about that area.

On the other hand, I'm not mad keen on keeping JavaScript timers running just to keep screen elements in their appropriate position, so I wondered if there was a way of doing this with just CSS instead. And of course there is: have a look at the demo page.

I started with a block of HTML in the standard module format, because it's a good basis for isolating areas of content. The div.bd holds the actual content to be highlighted, and the other parts of the module are used for creating the borders, as follows:

  • The outermost div is given a left-hand pseudo-border by using a background image with repeat-y only, positioned slightly to the left of the left edge, so that only the rightmost two pixels of the image are visible.
  • Likewise, the .inner container is given a top pseudo-border.
  • The .hd block makes the right-hand border. It is positioned absolutely on the right edge of the module, 2px wide and 100% tall, and has a background image with repeat-y.
  • The .ft block makes the bottom border. It is 2px tall and 100% wide, and also has a background image.

Here's how it looks inline:

Marching ants!

The actual animation is achieved with a couple of old-skool animated GIFs, ants-horizontal.gif and ants-vertical.gif. The horizontal GIF contains two checkerboard patterns, one moving to the left, and one moving to the right; the vertical GIF has the checkerboard patterns moving up and down. Each border only uses half of one of the GIFs, which is you only need two images rather than four.

If you are content with the border being a single pixel thick, and the ants flowing from one corner to the opposite, then you could get away with just one animated GIF — see the wikipedia article on marching ants for an illustration. Personally, I prefer the animation to flow round the border in a continuous pattern.

Of course, this is far from the only way you could implement the marching ants effect. You could use webkit's CSS animations instead. The demo page includes an example of how to do this as well. The basic principles are exactly the same: set up a standard module, and use GIF images to form the necessary borders. But instead of using animated GIFs, you can use just a single static checkerboard image, and use up/down/left/right animations to move around the background instead:

.marchingants {
	-webkit-animation-name: march-up;
	-webkit-animation-duration: 0.3s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-timing-function: linear;
}
@-webkit-keyframes march-up {
	from {
		background-position-y: 8px;
	}
	to {
		background-position-y: 0;
	}
}

One neat thing about the CSS animation version is that you can vary the speed of the animation without having to edit the GIF file. The obvious drawback is that it (for now) only webkit browsers support CSS animations. But given how easy it is to implement this in a cross-browser compatible manner, right now I'd suggest sticking to the animated GIF version.