5 years later: print CSS still sucks

This tweet had me revise a 5 year old experiment on how print CSS affects page loading, especially in the light of mobile browsers. So I tweaked the test ever so slightly to print out timing info in the document.title and after the page is done. The test is essentially how does a slow print […]

April 25th, 2012
Tags: CSS, performance

Simple music player

I put up a few MP3s on http://anacondalimousine.com, in simple a hrefs. While modern browsers will let you click and display some sort of player in a new page, why not play them in-page without a refresh? Simple enough. Plus we have HTML5 audio. Problem is, old IEs don’t support HTML5 audio and you need […]

April 18th, 2012
Tags: ffmpeg, JavaScript, Music

The Truth about semicolons in JavaScript

jk jsdrama.com is live though. Enjoy and feel free to add more next time. (image from wikipedia)

April 16th, 2012
Tags: Fun, JavaScript

Wish You a Merry Christmas 2011

Here’s a cover of We Wish You a Merry Christmas I just did. It’s in a Bulgarian (and other Balkan countries) style in 7/8 tempo (and 9/8th at one place). This is me channeling my inner Goran Bregovich ๐Ÿ™‚ We Wish You a Merry Christmas (7/8th and 9/8th) Continuing the tradition (why did I skip […]

December 24th, 2011
Tags: Music

Imagine

Challenged by Marcel and inspired by another idea by Nicholas (upcoming, stay tuned!) here’s the beginning. Imagine there’s no quirksmode It’s easy if IE6 dies No Trident below us And all the data URIs Imagine all the web devs coding for today You may say I’m a dreamer But I’m not the only one I […]

December 12th, 2011
Tags: Fun

Velocity Europe discount

The web performance and operations conference, Velocity Europe, is just around the corner. This always sold-out event is making its EU debut this year in Berlin. Get your ticket now (with 20% discount no less) or punish your users and clients with slow user experiences ๐Ÿ™‚ Info: url: http://velocityconf.com/velocityeu/ cost: รขโ€šยฌ600 after 20% discount (ow […]

November 1st, 2011
Tags: performance

Imagemagick crop and center

Say you get a sprite created no matter how but the original images are long gone or for whatever reason not available. With imagemagick it’s easy to crop them back. And I think it’s easier and more precise than with a graphic UI, e.g. photoshop. Let’s see how. Task: get me a 16×16 favicon for […]

October 12th, 2011
Tags: images

Social button BFFs

TL;DR: Loading JavaScript asynchronously is critical for the performance of your web app. Below is an idea how to do it for the most common social buttons out there so you can make sure these don’t interfere with the loading of the rest of your content. After all people need to see your content first, […]

September 27th, 2011
Tags: facebook, JavaScript, performance

x-webkit-speech input and textareas

New hotness, speech input. (The demo, the demo) You get an input: <input> You add an x-webkit-speech attribute <input x-webkit-speech> And voila! Or if you don’t have a recent Chrome version, here’s what these who have a recent Chrome version see: Nice. Textareas Speech inputs – gotta love them. But in textareas – you can’t […]

August 6th, 2011
Tags: (x)HTML(5)

Overlooked Optimizations: Images

#1 This guest post from Billy Hoffman is the last post in the Velocity countdown series. Velocity starts first thing tomorrow! Hope you enjoyed the ride and please welcome Billy Hoffman! Billy Hoffman (@zoompf) is the founder and CEO of Zoompf, a web performance startup whose scanning technology helps website owners find and fix performance […]

June 14th, 2011
Tags: images, performance

Sultans of Speed

#2 This post is part of the Velocity countdown series. Stay tuned for the last one tomorrow. With only 2 days to Velocity, it’s time to drop in the quality of these posts (but the one tomorrow will be great, I promise) with today’s announcement of the immediate availability of the project called http://sultansofspeed.com. I […]

June 13th, 2011
Tags: Music, performance

Book of Speed

#3 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Without further ado, please point your browser to the newborn bookofspeed.com. It’s a free (public domain), online, open-source, not yet finished, book about web performance. Contributions welcome The source files are on Github – https://github.com/stoyan/Book-of-Speed. I’ll be glad […]

June 12th, 2011
Tags: book, performance

YSlow 2.0: the first sketches

#4 This post is part of the Velocity countdown series. Stay tuned for the articles to come. I’m working on tomorrow’s kind of big thing, so will take it easy today, with a stroll down memory lane. I was clearing up my space at home few days ago and came across this oldish notepad. In […]

June 11th, 2011
Tags: performance, yahoo, ydn, yslow

Perfplanet.com is open

#5 This post is part of the Velocity countdown series. Stay tuned for the articles to come. It’s been over a year, since the launch of perfplanet.com. Looks good and useful for people so far. Sergey “ShowSlow” is doing also a great job of tweeting as @perfplanet about news from the perfplanet pipes as well […]

June 10th, 2011
Tags: performance

Preload in visual search suggestions

#6 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Alrighty, this is something I’ve talked about last year at HighLoad++ and Fronteers, but never blogged. I came up with this thing while at Yahoo! Search and we used it there in production. So, it must be working. […]

June 9th, 2011
Tags: images, performance

Lazy HTML evaluation

#7 This post is part of the Velocity countdown series. Stay tuned for the articles to come. Some time ago Google talked about using a sort of lazy JavaScript evaluation which especially helps mobile devices. The idea was to comment out a chunk of JavaScript you don’t need right away and serve it this way. […]

June 8th, 2011
Tags: (x)HTML(5), JavaScript, mobile, performance

Velocity countdown

Let me try to set the mood for Velocity 2011 with an attempt to publish one performance-y post a day for the seven days between now and when the conference starts. #7 – Lazy HTML evaluation #6 – Preload in visual search suggestions #5 – perfplanet.com is open #4 – YSlow 2.0: the first sketches […]

June 8th, 2011
Tags: performance

There was a dude who liked to write code

There was a dude who liked to write code I dunno why he liked to write code The code was Node(.js) code There was a dude who wrote a lint tool To check the code that he wrote – cool! But I dunno why he liked to write code The code was Node There was […]

May 14th, 2011
Tags: Fun

Simple Sharding Logic

Sharding is the technique where you split static components across multiple domains so the browser can fetch more components in parallel? (Which browser? How many components per hostname? Ask browserscope.org) So you have, say, image-a.png and image-b.png. You want to serve image-a from domain1.example.org and image-b.png from domain2.example.org The thing is you don’t want to […]

May 6th, 2011
Tags: performance

Silicon Valley (roughest place I’ve ever been)

Excuse me, my dearest reader for subjecting you to this (*cough vogon poetry*). My only excuse is it’s Friday. So here comes another one of those. This time a coverlet (a whatlet?) of Stevie Ray Vaughan’s Tin Pan Alley (The Roughest Place in Town). Tin Pan Alley sounds almost like Silicon (Silly Con?) Valley ๐Ÿ™‚ […]

April 16th, 2011
Tags: Fun, Music

Audio sprites

Another “brilliant” idea that I had recently – how about combining audio files into a single file to reduce HTTP requests, just like we do with CSS sprites? Then use the audio APIs to play only selected parts of the audio. Unlike pretty much all brilliant ideas I have, I decided to search for this […]

April 13th, 2011
Tags: ffmpeg, mobile, Music, performance

A rounded corner

Warning: not practical blog post, don’t read, move on. So this is a post about a thought I had – creating rounded corners in IE678 by using roundness that they already have built-in, meaning the character O. But first: My opinion is that browsers that don’t support border-radius should never ever get rounded corners. Let […]

April 13th, 2011
Tags: CSS, IE, performance

HTTPWatch automation with JavaScript

Background HTTPWatch (automation) …with PHP (and again and again, and response) JavaScript shell scripting I gave this short presentation at the recent Yahoo FE summit’s open mic, here are the slides and some notes. Slides and screencast vid JavaScript shell scripting View more presentations from Stoyan Stefanov Screencast to see the thing in motion: Notes […]

April 10th, 2011
Tags: JavaScript, performance, speaking, tools

YSlow/Chrome hacking

If you haven’t seen it yet, YSlow for Chrome hit the streets couple of weeks ago. (And Google’s own PageSpeed did too yesterday. (And there’s now DynaTrace for Firefox. (And WebPageTest for Chrome. (What a month for x-browsering (word?) the performance tools! (And the month’s not even over yet))))) BTW, I closed all the parentheses […]

March 24th, 2011
Tags: performance, tools, yslow

JavaScript-style object literals in PHP

The object literal notation in JavaScript looks like: var fido = {name: "Fido", barks: true}; or var fido = {}; fido.name = "Fido"; fido.barks = true; From assoc arrays to objects In PHP you would call that an associative array. $fido = array( ‘name’ => "Fido", ‘barks’ => true ); And you can easily make […]

March 20th, 2011
Tags: JavaScript, php