Check the comments, there are some very good discussions in there with Daniel Stenberg about c-ares and other resolvers.
5,399 karma · joined April 2, 2007
[ my public key: https://keybase.io/igrigorik; my proof: https://keybase.io/igrigorik/sigs/eMcFb-lAFqkBGZKfdzJcQrC5a2dTBj_8cTAQqsXUhaE ]
Check the comments, there are some very good discussions in there with Daniel Stenberg about c-ares and other resolvers.
An often overlooked reason for supporting this is to pre-resolve hostnames behind a redirect. If you have a "http://a.com/resource, which redirects to "http://b.com/resource, and you know this relationship while you're generating the page, then injecting a dns-prefetch link can help hide the cost of the extra DNS lookup when the browser is following the 3xx.
I'm not arguing for or against visual design - yes, you're right nothing new there. What I'm trying to point out, as we start migrating our presentation tools to the web, is that we don't need to copy all the useless inheritance.
For now, and yes I'm the early technical adopter.. I'm willing to edit the HTML markup directly, heck I'll FTP the darn thing to your server, and will do other backflips.. all if you manage to give me good feedback on how to do a better presentation next time around.
You can run ZMQ devices which can act as routers, and you can easily create fan outs, fan ins, pipelines, and more.
For a mildly interesting example of building a "dynamic" typology, check this experiment: https://github.com/igrigorik/zeroconf-router
- 5.8M events in April
- Most popular languages? Javascript, Java and Ruby.
- Most popular new repo? Prince-of-Persia-Apple-II
- Most watched repo? meteor
If you want, you can also access the raw archives, see instructions on githubarchive.org
As far as async vs. defer, here's a good summary: http://www.sitepoint.com/non-blocking-async-defer/
As far as best practices, I agree we need to do a better job of advertising this material. It is available:
https://developers.google.com/speed/docs/best-practices/rule... https://developers.google.com/speed/docs/insights/rules
In fact, this entire site is worth spending some time one: https://developers.google.com/speed/
Dev wise, probably the biggest hurdle for most people today is simply installing the latest SSL builds for NPN support (usually entails recompiling your favorite language against it as well).
Original whitepaper: http://www.chromium.org/spdy/spdy-whitepaper
Here's a good tech talk to checkout as well: http://www.youtube.com/watch?v=TNBkxA313kk
Draft 3 has also updated the dictionary, here's the research paper motivating the change: http://www.eecis.udel.edu/~amer/PEL/poc/pdf/SPDY-Fan.pdf
In addition, TCP slow start, window sizing, etc, work against you when it comes to optimizing for latency: http://www.igvita.com/2011/10/20/faster-web-vs-tcp-slow-star...
Once a request enters your "back office" it should all be message oriented, over persistent connections, with flow control / QoS, and the like.
In many cases, you don't need bi-directional communication.. Which is also why HTML5 spec introduced Server Sent Events (SSE): http://www.igvita.com/2011/08/26/server-sent-event-notificat...
Same idea, em-synchrony under the hood.
(improvements welcome! :-))
The "bit" per key was prior to setbit/getbit functionality. The new implementation is, in fact, very efficient.
http://docs.google.com/a/chromium.org/viewer?a=v&pid=sit...
http://www.chromium.org/spdy/An_Argument_For_Changing_TCP_Sl...
As for slow-start question: CWND is set on the server (on the sender side). You can increase your advertised window, but that will have no effect since it's the server that ramps up the bandwidth, not the client.
If you do control both the server and the client then you will definitely see a difference.