Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1025

P

Perfection Kills

Personal blog · perfectionkills.com · on HN as kangaxprogrammingweb

Perfection Kills is a personal blog at perfectionkills.com about programming and web. Since 2010, 65 different Hacker News readers have linked it 83 times, most often “Understanding delete in Javascript”. It is still writing: the last post was on 2026-10-07, and you can follow it by feed.

Visit the blog
83mentions?
65HN people?
2010–2023first – last linked?
Links on Hacker News per year · peak 16 in 2010

Engineering and Fitness Musings by kangax

The author on HN?

kangax · 374 karma · member since 2009

http://perfectionkills.com/

From their public HN profile, which links to this site.

Most-linked posts?

  1. Understanding delete in Javascript
    7 people · 7 mentions · first linked 2010-01-11
  2. Profiling CSS for fun and profit. Optimization notes.
    6 people · 6 mentions · first linked 2012-05-04
  3. You thought you knew Javascript
    6 people · 6 mentions · first linked 2010-02-08
  4. Global eval. What are the options?
    6 people · 6 mentions · first linked 2010-12-15
  5. What’s wrong with extending the DOM
    6 people · 6 mentions · first linked 2010-04-05
  6. The poor, misunderstood innerText
    6 people · 6 mentions · first linked 2015-04-01
  7. Exploring canvas drawing techniques
    4 people · 5 mentions · first linked 2013-12-03
  8. Optimizing HTML
    3 people · 3 mentions · first linked 2010-01-03
  9. Experimenting with html minifier
    3 people · 3 mentions · first linked 2010-03-10
  10. JavaScript quiz, ES6 edition
    2 people · 2 mentions · first linked 2015-11-04

What Hacker News says?

  1. The responsive design view is very handy. It switches the size of the view port without changing the size of the whole window. I still use firebug most of the time, but there are some issues with firebug you have to be careful of. See this post for an example http://perfectionkills.com/understanding-delete/#firebug_con...

    Comment linking /understanding-delete/

    on “Mozilla bug 923590: Pledge never to implement HTML5 DRM”
  2. Submitted Understanding delete in Javascript as a story · 209 points

    HN discussion
  3. (1,eval)('2*2') evaluates in the global context, so it may be slower I would think. Here's a really long and insanely detailed post about this odd feature: http://perfectionkills.com/global-eval-what-are-the-options/

    Comment linking /global-eval-what-are-the-options/

    on “A file that's both an acceptable HTML page and a JPEG (view source on it)”
  4. Submitted Exploring canvas drawing techniques as a story · 181 points

    HN discussion
  5. I've been using https://github.com/terser/html-minifier-terser to get this kind of HTML for my personal site for a while. It passes W3C so I'm happy. After reading the connected blog post http://perfectionkills.com/experimenting-with-html-minifier/

    Comment linking /experimenting-with-html-minifier/

    on “Write HTML Right”
  6. Submitted The poor, misunderstood innerText as a story · 178 points

    HN discussion
  7. Your comment inspired me to write a post on References in Javascript :) http://perfectionkills.com/know-thy-reference

    Comment linking /know-thy-reference

    on ““This” in JavaScript”
  8. Submitted HTML minifier revisited as a story · 99 points

    HN discussion
  9. I'm of the impression that it is an internet reimplemented on top of the internet that we are using right now. So, you download a vm emulator, like uxn [0]. This able to use a specific protocol to reach out and communicate with other vm emulators of its kind. But, like the tls namespace, my vm doesn't just reach out to macwrite.com/index.html . It has to go through my switch, through a series of switches of my and o…

    Comment linking /the-poor-misunderstood-innerText/

    on “Urbit: The good, the bad, and the insane”
  10. Submitted The Poor, Misunderstood InnerText (2015) as a story · 38 points

    HN discussion
  11. I really admire Resig, and this post contains a few gems: 1. Knew about PPK[0], didn't know about JZ[1] 2. Feature detection came about from writing this book! Which generalizes too: writing is a great way to innovate (something pg has said, too). 3. A nice little jab at GRRM, who thoroughly deserves it. 4. An exciting glimpse into the future of computer science pedagogy by way of JavaScript in the browser. (And I c…

    Comment linking /

    on “John Resig: Secrets of the JavaScript Ninja Update”
  12. Submitted Experimenting with html minifier as a story · 19 points

    HN discussion
  13. http://perfectionkills.com/global-eval-what-are-the-options/...

    Comment linking /global-eval-what-are-the-options/

    on “Javascript patterns”
  14. Submitted Extending Native JavaScript Objects. Evil or Not? as a story · 17 points

    HN discussion
  15. MMh. Using toString to serialize a JS function breaks for some functions doesn't it: https://github.com/mentum/lambdaws/blob/master/lib/LambdaHel... It seems here is a discussion about the topic: http://perfectionkills.com/state-of-function-decompilation-i...

    Comment linking /state-of-function-decompilation-in-javascript/

    on “Run Any JavaScript Function in the Cloud”
  16. Submitted Profiling CSS for fun and profit as a story · 13 points

    HN discussion
  17. Correct. Not only is eval not a good idea in general, but it's a very weird beast in javascript. See http://perfectionkills.com/global-eval-what-are-the-options/ for a very complete exposition of its weirdness.

    Comment linking /global-eval-what-are-the-options/

    on “A surprising JavaScript memory leak found at Meteor”
  18. Submitted Profiling CSS for fun and profit. Optimization notes. as a story · 13 points

    HN discussion
  19. After a certain point the number of selectors does affect parsing time and selector matching time, in a very significant way. Performance has improved a bit since this post but it's still relevant: http://perfectionkills.com/profiling-css-for-fun-and-profit-...

    Comment linking /profiling-css-for-fun-and-profit-optimization-notes/

    on “AM – Attribute Modules for CSS”
  20. Submitted Exploring canvas drawing techniques (2013) as a story · 12 points

    HN discussion
  21. I believe MooTools still makes extensions to built-in DOM classes, which other libraries avoid - even Prototype is moving away from that technique, and they were the first to popularise it. http://perfectionkills.com/whats-wrong-with-extending-the-do...

    Comment linking /whats-wrong-with-extending-the-dom/

    on “jQuery 1.4.3 Released”
  22. Submitted You thought you knew Javascript as a story · 9 points

    HN discussion
  23. Wow, this takes me way back -- but that 'way back' was only 10 years ago. So much has changed in that span of time, it's mindboggling. Around the time that MooTools appeared, Prototype and Dojo were the cutting-edge of DHTML, freshly made cool again by the term 'Ajax'. Prototype was very much a series of ugly hacks driven by the get-shit-done monkeypatching mentality of Rails, but it was fantastic. Meanwhile Dojo wa…

    Comment linking /whats-wrong-with-extending-the-dom/

    on “How MooTools was built”
  24. Submitted JavaScript quiz, ES6 edition as a story · 8 points

    HN discussion
  25. You can see from this image — http://perfectionkills.com/images/minifier_benchmarks.png — that pages under 100KB are all under a second. But then it grows. I suspect regex parsing (not catastrophic but close) to be the culprit. If you have time to look into it and optimize — that would be super helpful, of course!

    Comment linking /images/minifier_benchmarks.png

    on “HTML minifier revisited”
  26. Submitted The Poor, Misunderstood InnerText as a story · 7 points

    HN discussion
  27. I'd add also that Javascript proto inheritance is more about composition than type checking, since `instanceof` has its frames problem [1]. As a result, I'm increasingly inclined to do data-structure objects and composable functions, which seems similar to Go's approach. 1 http://perfectionkills.com/instanceof-considered-harmful-or-...

    Comment linking /instanceof-considered-harmful-or-how-to-write-a-robust-isarray/

    on “My Perception of CoffeeScript”
  28. Submitted State of function decompilation in Javascript as a story · 7 points

    HN discussion
  29. The example in this document of using the delete operator on a function is wrong. http://perfectionkills.com/understanding-delete/

    Comment linking /understanding-delete/

    on “Apple JavaScript Coding Guidelines [pdf]”
  30. Submitted Fabric.js 0.5 is out as a story · 7 points

    HN discussion

Search all of HN for perfectionkills.com

Linked by the same people?