My face is in a video! Velocity Conference Interview

As part of my appearance at this year’s Velocity Conference NYC, I have been interviewed for the O’Reilly youtube channel and also the podcast.

In it I’m covering the contents of the upcoming talk that I’m doing with Dean, such as the HTTP Archive and Google’s Big Query and how people should approach these in order to get the most out of it.

I also mention some of the common pitfalls that poorly performing sites are doing, as well as what the good and the great are doing – some of their sneaky tricks.

If you’re attending Velocity Conf in NYC right now, then why not have a little look and get a sneak peak before attending the full session on Wednesday at 5pm

nuget: cannot prompt for input in non-interactive mode

If you’ve ever seen this annoying error in your various build server logs, or even when running msbuild locally from the command line, you’re probably getting annoyed.

There are a few solutions (such as including the user credentials in plain text in a config file – eep!) but this is one which I’ve used when I really get stuck.

Ensure you’re logged in as the user which will be running the builds (if not yourself), and update the nuget source reference (which will be in a user-specific appdata config file) with the password:

nuget sources update -Name <whatever you called it> -source http://your.nuget.repo/authed/feed/ -User <your username> -pass <your pwd>

This will save an encrypted password in a user-specific config file on that computer, and should mean you don’t get prompted for that source anymore.

Several more options are detailed over here:

Android browsers, keyboards, and media queries

If you have a site that is intended to be mobile friendly, is reasonably responsive (in a media-query-stylee) and has user input areas, you may find this issue on Android due to how the keyboard interacts with the screen:

Nice text input area


Oh noes! Screen gone wrong!


It turns out that on Android devices the keyboard doesn’t overlay the screen, but actually resizes the screen; this can cause your media queries to kick in, especially if you use “orientation”:

(orientation : landscape)

(orientation : portrait)

To fix this, try changing your orientation checks to aspect ratio checks instead:

[css](orientation : landscape)[/css]
[css] (min-aspect-ratio: 13/9) [/css]

[css](orientation : portrait)[/css]
[css](max-aspect-ratio: 13/9)[/css]

Ahhh – success!



What I’m looking forwards to at VelocityConf NYC 2014

There’s a good mixture of Performance and Mobile sessions in my list, and a couple of Operations and Culture ones too. However, there are so many conflicting sessions that are awesome, so please let me know your thoughts to help me decide!

Day One

I saw Tammy Everts‘ vconf session last year, Understanding the neurological impact of poor performance, which was fascinating. Her tweets are great resources for web performance.

As such, I’ll start the conference with Everything You Wanted to Know About Web Performance (But Were Afraid to Ask)

Then I’ve got to decide between Colin Bendell’s (Akamai) Responsive & Fast: Iterating Live on Modern RWD Sites and Patrick Meenan’s (Google) Deploying and Using WebPagetest Private Instances

Unfortunately, then my ability to make a decision completely fails! I can’t decide between these three:

Finding Signal in the Monitoring Noise with Flapjack, RUM: Getting Beyond Page Level Metrics, and an Etsy-powered mobile session – Building a Device Lab. Help!

I’m planning to finish day 1 with W3C Web Performance APIs in Practice

Day Two

Following the ever-impressive opening sessions, I’ll head over to see a Twitter session: Mitigating User Experience from ‘Breaking Bad’: The Twitter Approach, then it’s decision time again: either The Surprising Path to a Faster or A Practical Guide to Systems Testing.

Following that, how could I miss Yoav Weiss talking about how Responsive Images are Coming to a Browser Near You?!

Then I’m deciding between another Etsy session – It’s 3AM, Do You Know Why You Got Paged? – and another Tammy Everts (and Kent Alstad, also of Radware) session – Progressive Image Rendering: Good or Evil?.

I’ll finish the day with another session from Yoav – Who’s Afraid of the Big Bad Preloader? – and Etsy’s Journey to Building a Continuous Integration Infrastructure for Mobile Apps, probably.

Day Three

After some more kickass sessions opening the day, I’ll head over to see Signal Through the Noise: Best Practices for Alerting from David Josephsen (Librato).

After that will be Handling The Rush, then another descision between How The Huffington Post Stays Just Fast Enough and Creating a Culture of Quality: How to Sell Web Performance to Your Organization

During the break there will be a couple of jokers talking about the Http Archive, Big Query, and Performance using .Net and Azure! I’ll not miss that for the world! They’re amazing! And ridiculously handsome. kof
Office Hour with Dean Hume ( and Robin Osborne (Mailcloud)

The afternoon will be made up of Test Driven Mobile Development with Appium, Just Like Selenium, Making HTTP/2 Operable and Performant, AND THE AMAZING LOOKING HTTPARCHIVE+BIGQUERY SESSION The Good, the Bad, and the Ugly of the HTTP Archive (which is going to be AMAZINGLY EPIC)


Then beers, chatting with other like-minded nerds, and a spare day to wander around NYC before an overnight (I believe the term is “red eye”) return flight.

My schedule

You can check my full schedule here, should you want to be creepy and stalk me.

Mobile website input box outlines: DESTROY!

Something that took me a while to figure out:


The orange border around this input box only appears on focus, on mobile devices. It took a while longer to notice that it’s only on mobile Chrome too.

I understand that it’s a valuable inclusion for small screens where you’d like to know where your cursor or other input is actually being passed to, but if you wanted something other than the orange border, or to remove it entirely, trawling through your css for any reference to “border” or orange-y hex values can be a pain.

All you need to do is – for the element in question:

:focus {outline:none;}

Annnnnd relax.

HTML5 input type “email” validation

The HTML5 “email” input type is great for short-cutting the usual email validation javascript mess. Just by defining your input box as “type=’email'” you get validation for free (in modern browsers).


But how do you hook into this? Perhaps change the message or do some other actions at the same time? Check out the “invalid” event:

$("#email-input").on(‘invalid’, function (e) {
// do stuff


Or if you’re old school

document.getElementById(’email-input’).addEventListener(‘invalid’, function(e){
// do stuff

This returns a ValidtyState object on which you have the following properties:

  • badInput
  • customError
  • patternMismatch
  • rangeOverflow
  • rangeUnderflow
  • stepMismatch
  • tooLong
  • typeMismatch
  • valid
  • valueMissing

So you can work with it like so:

$("#email-input").on(‘invalid’, function (e) {
if ( {
alert("enter a valid email address!");

Or you could even override the default message that appears in the tooltip:

$("#email-input").on(‘invalid’, function (e) {
if ( {"enter a valid email address!");

Clever stuff, eh?

I’ll be speaking at Velocity Conference New York 2014!

Velocity New York 2014

For the second year running I’ve been invited to speak at the fantastic web performance, optimisation, dev ops, web ops, and culture conference VelocityConf; in fact, it has become the essential training event and source of information for web professionals over the years it has been running.

Last year was the Europe leg of the conference, in London. This year I’ll be jetting off (via the cheapest possible flights known to google..) to New York City!

The Good, the Bad, and the Ugly of the HTTP Archive

I’ll be speaking once again with Dean Hume (who has literally written the book on website performancee) about The Good, The Bad, and the Ugly of the HTTP Archive; we’ll be talking about technologies like the HTTP Archive and Google’s Big Query, but mainly about the secrets learned from some of the great sites and their dev teams, as well as some of the traps from some of the not so great sites. In most cases we’ll look at one small change which could help those no so great sites become a bit more great!

Where? When?

  • 09/17/2014 5:00pm
  • Room: Sutton South

Come and see us!


New York Hilton Midtown
1335 Avenue of the Americas
New York, NY 10019

Office hours

Dean and I will also be hosting an Office Hours session where you’re invited to come and say hello, and talk to us about your Windows, .Net, Azure, EC2, web performance concerns or ideas; we’d love to have the opportunity to meet and speak with you, so please come and say hi!

Where? When?

  • 09/17/2014 2:45pm
  • Table 1 (Sponsor Pavilion)


There’s never been a better year to attend Velocity Conference; the line up is amazing, the contents are incredible, and the opportunity to talk with experts and passionate developers is priceless.

If you’re not sure how to convince your manager to send you – try the official Convince your Manager steps!

Once you’ve sorted that out, register and use the code given to you by your speaker friend (me!), for a whopping 20% discount: SPKRFRIEND.

You want more?

Velocity New York 2014