The Truth(tm) about encoding SVG in data URIs

Feb 9th, 2024

tl;dr: You can stop worrying and URL-encode only the # character. What? So you want to have an SVG image in a CSS stylesheet. Yup, using data URIs (hey lookie, a 2009 post). There are a number of reasons not to embed images in CSS to begin with (caching, reuse), but hey, sometimes you’re not […]

 

Lazy HTML evaluation

Jun 8th, 2011

#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. […]

 

CSS minifiers comparison

Oct 30th, 2010

Last year I compared some CSS minifiers, namely YUICompressor, CSSTidy (with “small” vs. “safe” settings), PHP PEAR’s CSS lib and Minify (detailed results). Now that I’ve done some work on the YUICompressor and since there’s a new kid on the block from Microsoft I thought I should give it another go. I only compared CSSTidy […]

 

cssmin.js in windows shell

Oct 29th, 2010

JavaScript can run virtually anywhere, including as a windows exe and the windows command line. Say you have a JavaScript function foo() function foo(input) { var output = input; // .. unicorns return output; } In order to make this a windows shell script you add at the and a way to read standard input […]

 

Preload, then execute

Oct 23rd, 2010

I talked before about using an object element to load scripts and styles without executing/applying them to the current document. And this is nice for preloading assets – faster and less error-prone than simple inclusion if the document or iframe. But what about preloading assets (scripts) and then executing them on the current page? Turns […]

 

Inline MHTML+Data URIs

Oct 3rd, 2010

MHTML and Data URIs in the same CSS file is totally doable and gives us nice support for IE6+ and all modern browsers. But the question is – what about inline styles. In other words can you have a single-request web application which bundles together markup, inline styles, inline scripts, inline images? With data URIs […]

 

The proper MHTML syntax

Oct 3rd, 2010

Reducing the number of HTTP requests is a must, sprites are cool, but a pain to maintain, so there come data URIs (for all browsers) and MHTML (IE6 and 7). I’ve talked about these things on this blog to a point where the blog comes up in top 10 results in search engines for queries […]

 

The European Tour 2010

Oct 2nd, 2010

So it’s been pretty quiet around here. I’m still alive and very much so. Just awfully busy. Bulgaria I took a long trip in Bulgaria. About 1 month and 20 days. Including the traditional around-Bulgaria let’s-get-drunk-in-different-cities-every-day tour de force with the gang. With unusual amount of guitar playing this time. Not all fun and roses, […]

 

Conditional comments block downloads

May 23rd, 2010

I came across this blog post (via @pornelski and @souders) where Markus has stumbled upon a case where an IE6-only stylesheet included with a conditional comment blocks the downloads in IE8. Whaaat? I had to dig in. To give you a summary: turned out that any conditional comment, not only for an extra CSS, will […]

 

YUI CSS min – part 3 – hacks

May 21st, 2010

The previous parts are here (building and testing) and here (what gets minified). Now let’s see how YUI CSS min handles CSS hacks. As you know CSS hacks often use errors in CSS parsers in browsers to target specific browser versions and supply additional rules to work around other issues in said browsers. That makes […]

 

YUI CSS Min – part 2

May 20th, 2010

The first part is here. It was more about building the YUICompressor, writing and running test cases. Now let’s see what the compressor does exactly to your CSS. BTW, you can play with the web UI to see for yourself how the minifier works. Stripping comments and white space This is the bare minimum a […]

 

Top 5 reasons to send your resume to Yahoo! Search today

May 19th, 2010

Disclaimer: I work for Yahoo! Search. But I speak for myself. All opinions on my blog, twitter… yada-yada… are not necessarily those of my employer. They could be, but they may not be. They might have been but may no longer be. They might have never been, but maybe, baby, someday they might become. So […]

 

Preload CSS/JavaScript without execution

Apr 21st, 2010

Preloading components in advance is good for performance. There are several ways to do it. But even the cleanest solution (open up an iframe and go crazy there) comes at a price – the price of the iframe and the price of parsing and executing the preloaded CSS and JavaScript. There’s also a relatively high […]

 

Publishing 5 books this year

Apr 1st, 2010

So I’ll be publishing 5 books this year. Isn’t that incredible? Is it even possible? And good quality books at that? It’s a nice challenge (my last year’s challenge failed, I didn’t even bother to count how bad it failed). I think it’s possible, especially if you bend a little bit the meaning of “5”, […]

 

Uncompressed data in base64? Probably not

Feb 4th, 2010

The beauty of experimentation is that failures are just as fun as successes. Warning: this post is about a failure, so you can skip it altogether 🙂 The perf advent calendar was my attempt to flush out a bunch of stuff, tools and experiments I was doing but never had the time to talk about. […]

 

One-click Minifier Gadget (OMG) – initial checkin

Jan 31st, 2010

So I’ve been thinking and talking to folks about this idea of having one-stop shop for all your minification needs. Minification of JS and CSS as well as image optimization helps site performance by reducing download sizes. This is good. But not a lot of people do it. People don’t do it, because it’s a […]

 

Performance job offers

Jan 28th, 2010

I’m sure quite a few of you my fellow readers are crazy about web performance. And if you’re seeking new challenges, timing can’t be any better. Below are three excellent opportunities in three of the most high-traffic sites on the planet. Yahoo! Search is hiring a senior performance engineer. Yep, you’ll be working with me […]

 

The performance business pitch

Dec 24th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 24 This post is the last article in the 2009 performance advent calendar experiment. The idea for this post actually came from the awesome Jeremy Hubert. I met him after a tech talk at Yahoo! I co-delivered and we talked about the presentation. The […]

 

CSS performance: UI with fewer images

Dec 23rd, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 23 This post is the one-before-last article in the 2009 performance advent calendar experiment. Often performance improvements come with their drawbacks, sometimes improving performance causes pains in other parts of the development process or strips stuff from the final product. Sometimes there’s even a […]

 

Progressive rendering via multiple flushes

Dec 21st, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved 10/2011 update: You can also read the web page with Romanian translation (by Web Geek Science) Dec 21 This post is part of the 2009 performance advent calendar experiment. Stay tuned for the articles to come. Perceived page loading time is just as important as […]

 

Extreme JavaScript optimization

Dec 20th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 20 This article is part of the 2009 performance advent calendar experiment. Today’s article is a second contribution from Ara Pehlivanian (here’s the first). There’s a Belorussian translation provided by Patricia. Thanks! Ara Pehlivanian has been working on the Web since 1997. He’s been […]

 

The new game show: “Will it reflow?”

Dec 19th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 19 This post is part of the 2009 performance advent calendar experiment. Stay tuned for the articles to come. Intrigued by Luke Smith’s comment and also Alois Reitbauer’s comment on the previous post about rendering I did some more testing with dynaTrace and SpeedTracer. […]

 

DOM access optimization

Dec 18th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 18 This post is part of the 2009 performance advent calendar experiment. Stay tuned for the articles to come. This blog series has sailed from the shores of networking, passed down waterfalls and reflows, and arrived in ECMAScriptland. Now, turns out there’s one bridge […]

 

Rendering: repaint, reflow/relayout, restyle

Dec 17th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 17 This post is part of the 2009 performance advent calendar experiment. Stay tuned for the articles to come. UPDATE: Ukraine translation here. Nice 5 “R” words in the title, eh? Let’s talk about rendering – a phase that comes in the Life of […]

 

How To Measure Web Site Performance

Dec 16th, 2009

2010 update: Lo, the Web Performance Advent Calendar hath moved Dec 16 This article is part of the 2009 performance advent calendar. Today’s article is a contribution from Eric Goldsmith. Please welcome Eric and stay tuned for the articles to come. Eric Goldsmith (@GoldsmithEric), Operations Architect at AOL, has more than 20 years of experience […]