Perfection Kills is Juriy Zaytsev's (kangax) blog on JavaScript, the DOM and CSS internals, plus performance and tooling experiments.
HN links it for deep dives such as global eval and the HTML minifier experiments, which commenters cite when discussing those topics.
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 was fast-sprawling ecosystem of community and corportate contributions and plugins and whatnot, backed by a non-profit Foundation, and supported by major companies like IBM and Sun -- I can't firsthand speak to its quality (some have said it was quite good), but the contrast was night and day.
Script.aculo.us emerged built on top of Prototype to add tasteful interactivity (like DOM element dragging), and its branding targeted style-conscious developer-designers (the sort who'd read CSS Zen Garden but were tempted by JS). As the MooTools team noted, the weaknesses of Prototype started to show as its capabilities were pushed -- and it was getting kinda big. It was into this landscape that jQuery, Moo.fx, and MooTools arrived, and the rest is now ancient history.
There were many things that set jQuery and MooTools apart, but a notable one was their differring philosophies on extending native JS objects, or in contemporary parlance "extending the DOM". jQuery specifically didn't do this, while MooTools followed in the vein of Prototype and actually extended more…
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 other commercial ISP datacenters, until it reaches the server that manages 'com' and then finds the server with the webpage I want. But, that requires people to forward that traffic with their own vm emulators. So, Tlon, the organization that sponsors the urbit ecosystem, sold address space for 'galaxies', which are like the top level domains. They are expected/encouraged to lease out address space to many others, as 'stars', who will relay traffic up and down. Finally, laggards are expected to rent address space and subscribe for bandwidth from the star operators as a 'planet'. A vm without a star, a comet, to, I don't know, sign its traffic, can not communicate with other vms on the network. That is what I've concluded urbit is.
Urbit is sold as the opportunity to reimplement all of computing on top of this system. Like compilers ? They have a language they are building this stuff with. Like OS ? They need to flesh out the vm that you use. Like some application thing ? They probably need that too, reimplement all the things: text editor, web server, build…
That statement is too broad to be correct: modern browsers have had work optimizing selector performance (see http://calendar.perfplanet.com/2011/css-selector-performance-has-changed-for-the-better/) and you really need to measure before drawing conclusions, particularly when the alternative of cargo-culting less semantic, harder to maintain code has its own costs and doesn't get as much performance attention as browsers do.
Since there are are now CSS profilers for Chrome, WebKit and Opera (see http://perfectionkills.com/profiling-css-for-fun-and-profit-optimization-notes/) you can also make the better comparison: your actual site.
Examples:
http://stevesouders.com/efws/css-selectors/csscreate.php?n=1000&sel=div[id]+%3E+a&body=background%3A+%23CFD&ne=1000
http://stevesouders.com/efws/css-selectors/csscreate.php?n=1000&sel=div+%3E+a&body=background%3A+%23CFD&ne=1000
http://stevesouders.com/efws/css-selectors/csscreate.php?n=1000&sel=div%5Bid%5D+a&body=background%3A+%23CFD&ne=1000
http://stevesouders.com/efws/css-selectors/csscreate.php?n=1000&sel=div+a&body=background%3A+%23CFD&ne=1000
All four are very close in time in Chrome and Firefox - within 10ms or so. In all permutations of this, what really makes the most difference continues to be the question of how quickly the browser can narrow the set of nodes under consideration, which usually comes down to how well your markup makes expressing relationships natural rather than syntax tricks.
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 can't help but wonder if this is an oblique response to the recent Alan Kay Dr. Dobbs interview, where Kay asserts, "The Web, in comparison, is a joke. The Web was done by amateurs."[2])
5. Points out that even the best of us can get stuck in a procrastination loop.
6. Resig is going to finish a JavaScript book [3]
[0] http://www.quirksmode.org/
[1] http://perfectionkills.com/
[2] http://www.drdobbs.com/architecture-and-design/interview-with-alan-kay/240003442?pgno=1
[3] http://jsninja.com/
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-how-to-write-a-robust-isarray/
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_confusion