Top all-time · #1025
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.
Engineering and Fitness Musings by kangax
Most-linked posts?
- Understanding delete in Javascript7 people · 7 mentions · first linked 2010-01-11
- Profiling CSS for fun and profit. Optimization notes.6 people · 6 mentions · first linked 2012-05-04
- You thought you knew Javascript6 people · 6 mentions · first linked 2010-02-08
- Global eval. What are the options?6 people · 6 mentions · first linked 2010-12-15
- What’s wrong with extending the DOM6 people · 6 mentions · first linked 2010-04-05
- The poor, misunderstood innerText6 people · 6 mentions · first linked 2015-04-01
- Exploring canvas drawing techniques4 people · 5 mentions · first linked 2013-12-03
- Optimizing HTML3 people · 3 mentions · first linked 2010-01-03
- Experimenting with html minifier3 people · 3 mentions · first linked 2010-03-10
- JavaScript quiz, ES6 edition2 people · 2 mentions · first linked 2015-11-04
What Hacker News says?
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”Submitted Understanding delete in Javascript as a story · 209 points
HN discussion(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)”Submitted Exploring canvas drawing techniques as a story · 181 points
HN discussionI'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”Submitted The poor, misunderstood innerText as a story · 178 points
HN discussionYour 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”Submitted HTML minifier revisited as a story · 99 points
HN discussionI'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”Submitted The Poor, Misunderstood InnerText (2015) as a story · 38 points
HN discussionI 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”Submitted Experimenting with html minifier as a story · 19 points
HN discussionhttp://perfectionkills.com/global-eval-what-are-the-options/...
Comment linking /global-eval-what-are-the-options/
on “Javascript patterns”Submitted Extending Native JavaScript Objects. Evil or Not? as a story · 17 points
HN discussionMMh. 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”Submitted Profiling CSS for fun and profit as a story · 13 points
HN discussionCorrect. 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”Submitted Profiling CSS for fun and profit. Optimization notes. as a story · 13 points
HN discussionAfter 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”Submitted Exploring canvas drawing techniques (2013) as a story · 12 points
HN discussionI 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”Submitted You thought you knew Javascript as a story · 9 points
HN discussionWow, 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”Submitted JavaScript quiz, ES6 edition as a story · 8 points
HN discussionYou 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”Submitted The Poor, Misunderstood InnerText as a story · 7 points
HN discussionI'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”Submitted State of function decompilation in Javascript as a story · 7 points
HN discussionThe 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]”Submitted Fabric.js 0.5 is out as a story · 7 points
HN discussion