The total client to server roundtrip time is ~380ms. As a result, we would expect a regular HTTP connection to yield a TTFB of ~1140ms: 380ms for, 380ms for , and 380ms for the HTTP request and (instant) response. For , we would add another two to negotiate all the required parameters: 1140ms + 760ms, or ~1900ms (5 RTTs) in total. Well, that's the theory, let's now try the theory in practice!
The HTTP TTFB is right on the mark ( ~1100ms …
…localhost:3000″. Siege defaults to 15 simulated users, so this test will run 15,000 GET requests. I repeated these tests a few times - not enough to fully eliminate noise, but enough that I'm confident the results are accurate performance indicators.
The Surprising Results
Rails handled the requests fairly well, finishing the test in about 40 seconds at 378 transactions per second. Rails API didn't handle things much faster, finishing in a bit over 38 seconds, or 391 transactions …
…some surprising decisions. The oddest we encountered was the plethora of types blossoming around the HTTP request/response cycle. Instead of two simple maps with keys for status, headers and body there were types. Types galore! There was a request context, a request, a response, a large number of directives and even types for every ‘known' HTTP header.
lambda-chop : " Sweet.js macros for lambdas with currying, bound functions, and placeholders."
npmd , …
[ CHEF-4057 ] - in passing headers through an HTTP direct
[ CHEF-4380 ] - package resource with "source" is broken on EL6 using 11.6.0rc3
[ CHEF-4435 ] - :: DataBag.save does a PUT getting a 405 from the chef server
[ CHEF-4596 ] - .to_hash sometimes unique-ifies internal arrays
[ CHEF-4631 ] - to_hash returns all precedence instead of highest precedence
[ CHEF-4662 ] - knife edit creates temporary …
Ensure consistent Accept request HTTP header across browsers
Fix $.param() for jQuery compatibility when handling complex nested objects
Pass "abort" and "timeout" status to global ajaxError event handlers
Provide isDefaultPrevented() , stopImmediatePropagation() , and related methods for all events
Support the data argument in .bind() , .on() , and .one()
 It is now possible to listen on both a normal HTTP and an port.
 The `passenger-status` tool now displays rolling restart status.
If you would like to stay up to date withnews, please fill in your name and email …
When making requests to an external service's, some requests will frequently occur with the same parameters and return the same result. If we cache our request or response, we can reduce HTTP requests, which can improve performance and avoid hitting rate limits.
However, we don't always need to cache the entire API response. …
…it must be negotiated as part of the WebSocket handshake. Further, unlike a regular HTTP request (e.g. XMLHttpRequest initiated by the browser), WebSocket also allows us to negotiate compression parameters in both directions (client-to-server and server-to-client). That said, let's start with the simplest possible case:
GET /socket HTTP / 1.1 Host : thirdparty.com Origin : http://example.com Connection : Upgrade Upgrade : websocket Sec-WebSocket-Version : 13 Sec-WebSocket-Key …
…semantic actions like creating charges, and another class which knows how to translate those actions into HTTP requests.
How to avoid stubbing the System Under Test
Each time I'm tempted to stub the SUT, I think about why I didn't want to set up the required state.
If extracting a helper or factory to set up the state wouldn't be ugly or cause other issues, I'll do that and remove the stub.
If the method I'm stubbing has complicated behavior that's aggravating …
…effective separation of concerns , while focusing very much on the request/response part of the HTTP spec. While it's distributed as a full stack framework, Composer and PEAR packages as well as through Github . What makes this decoupled distribution model really exciting is the traction that Sensio Labs has …can also be used in a decoupled fashion, so that individual bundles can be used in a standalone implementation — each is available as