Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    S

    Stoyan Stefanov

    phpied.com · Personal blog · on HN since 2007

    Stoyan Stefanov, a web performance engineer formerly at Yahoo, writes about JavaScript, CSS, PHP and browser rendering.

    Visit blogRSSHN submissions
    Web DevelopmentProgrammingSystems & Performance
    What HN says

    HN links it for web performance advice, including data URIs, MHTML for old IE, and JavaScript class patterns.

    Stats for nerds
    52HN people shared it
    54linked in comments
    424story points
    Jul 2026last shared
    2009people per year2026

    Top posts on HN

    1. 1
      535 ways to reload the page with JavaScript
      9 people · 202 points · first shared 2011 · 52 comments on HN
    2. 2
      Command-line CSS spriting
      1 person · 55 points · first shared 2011 · 12 comments on HN
    3. 3
      JavaScript-style object literals in PHP
      2 people · 44 points · first shared 2011 · 14 comments on HN
    4. 4
      Font-Face Toggler Bookmarklet
      1 person · 40 points · first shared 2024 · 16 comments on HN
    5. 5
      YSlow-er? New YSlow!
      1 person · 9 points · first shared 2007 · 3 comments on HN
    6. 6
      Audio sprites
      1 person · 5 points · first shared 2011 · Discussion on HN
    7. 7
      Image optimization - 7 mistakes
      1 person · 5 points · first shared 2008 · Discussion on HN
    8. 8
      MHTML - When you need data: URIs in IE7 and under
      5 people · 4 points · first shared 2009 · Discussion on HN
    9. 9
      JavaScript shell scripting
      1 person · 4 points · first shared 2009 · Discussion on HN
    10. 10
      5 years later: print CSS still sucks
      1 person · 3 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • acemarkeSep 2020

      A few seconds of googling turns up these relevant articles on how browsers paint via GPU (which date back many years):

      - https://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chrome

      - https://www.urbaninsight.com/article/improving-html5-app-performance-gpu-accelerated-css-transitions

      - https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/

      and also how they handle painting and redrawing in general:

      - https://www.phpied.com/rendering-repaint-reflowrelayout-restyle/

      - https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

      - https://james-priest.github.io/udacity-nanodegree-mws/course-notes/browser-rendering-optimization.html

      So no, browsers don't "recompute the entire window". They know what DOM nodes have been mutated, and are able to fairly efficiently redraw just those pieces of the UI that have changed.

      I haven't watched the video yet, but React's approach to defining UI structure and updates is considerably different than your typical desktop UI toolkit (ie, Swing, Windows Forms, MFC, Qt, etc). With those classical frameworks, you generally have a bunch of object-oriented class inheritance hierarchies and manually instantiated child widgets with specific parameters (`button.setWidth(80)`, `button.setPosition(20, 40)`, etc), then add a lot of event listeners to manually modify both the data and the UI.

      As I previously mentioned, React expects to work with a "retained mode"…

    • sh1mmerJun 2010

      Steve definitely kicked "high performance" into overdrive at Y!, but he's one of many people who have contributed from Yahoo:

      Stoyan Stefanov write weekly about performance on his blog http://www.phpied.com/ and actually just released "Web Testing Framework" at Velocity which is a YSlow plugin.

      Nicholas Zakas wrote "High Performance JavaScript" (http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X) and does a ton of stuff for the Yahoo frontpage.

      Phil Tellis (author of Boomerang) regularly blogs on performance on http://bluesmoon.info

      I (sh1mmer) have done a bunch of performance related stuff with Aristus (now at FB) and I'm working on how network, consumer hardware and other holistic factors affect web performance. Expect some DNS related stuff soon.

    • CWIZOJul 2010

      I seriously doubt it. You only remove 1 extra request with this technique. The main advantage is that you don't have to maintain a sprite image (but using this without some tool would also be cumbersome).

      IMHO one saved request isn't work doing the same thing twice. And MHTML (http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/) doesen't come as a saviour either, as you have to duplicate all images in the CSS, which increases the size of the CSS significantly (if it doesn't you are probably better off using "old fashioned" techniques.

    • necolasNov 2010

      You can avoid the extra request for an image using a data URI - http://www.phpied.com/data-uris-mhtml-ie7-win7-vista-blues/

      The main advantage of CSS is that you can change the color and appearance of components without using a graphics package, and they might scale better. But that's about it.

      It was a technical exercise rather than a proof of concept. The icons themselves are very simple and limited. I wouldn't recommend using CSS in this way for production work (other than perhaps for very simple arrows).

    • ssttooJul 2026

      I don’t know about the brain but it’s good for the final results in my experience coding, writing and composing (orchestral music). The results are better and it takes less time if I start with pen and paper before “committing” to the computer. One of my favorite authors Jennifer Egan also writes fiction on paper (non-fiction articles still on the computer). More thoughts: https://www.phpied.com/starting-in-the-analog-domain/

    • tnorthcuttSep 2010

      It's largely a matter of personal preference, but an important consideration is that using site.com will mean any cookies served from site.com will also be served on any subdomains. For more reading on the subject: http://www.phpied.com/www-vs-no-www-and-cookies/

      "Basically you should always use www if you're planning to use any other sub-domains and you want them cookie-free."

    Related

    Performance Calendarcalendar.perfplanet.com123 people

    HTML and CSS techniques to reduce your JavaScript

    Performance Calendar
    Publication · last shared 2026
    Steve Soudersstevesouders.com157 people

    Cache Them If You Can

    Steve Souders
    Personal · last shared 2026
    Web Reflectionwebreflection.blogspot.com42 people

    What Is Wrong About 17259 Lines Of Code?

    Web Reflection
    Personal · last shared 2016
    Tantek Çeliktantek.com58 people

    js;dr = JavaScript required; Didn’t Read.

    Tantek Çelik
    Personal · last shared 2026
    Pony Fooponyfoo.com54 people

    The Controversial State of JavaScript Tooling

    Pony Foo
    Personal · last shared 2022
    Christopher Chedeaublog.vjeux.com52 people

    How Javascript Prototypal Inheritance Really works

    Christopher Chedeau
    Personal · last shared 2026
    Lea Veroulea.verou.me121 people

    Today’s JavaScript, from an outsider’s perspective (2020)

    Lea Verou
    Personal · last shared 2026
    SurviveJSsurvivejs.com35 people

    Interview with the author of React-like Inferno about JavaScript optimisations

    SurviveJS
    Personal · last shared 2023