How SPDY is making the web faster

Written on 28 January 2014, 12:09pm

Tagged with: , , ,

SPDY is one of the things that keeps me busy 🙂 The people from Akamai came up with a nice video explaining how Google’s SPDY experimental protocol leads to defining the next version of HTTP.
httpv://www.youtube.com/watch?v=WkLBrHW4NhQ

TL;DNW:

Background

The current HTTP 1.1 exists since 1999 (and hardly changed since 1996)

spdy

1. HTTP headers

– SPDY offers header compression (with HTTP 1.1 only the HTTP content is compressed)
– SPDY will avoid sending HTTP headers with every single request

2. Parallel requests

HTTP 1.1 pipelining: multiple requests on a single connection; but the response must come in the same order they were requested. Browsers open like 6 concurrent connection for every host
SPDY – true multiplexing: send as many requests as you want at once; get responses in whatever order (even in pieces). All this, over a single SPDY connection.
But this requires prioritization. SPDY leaves the decision to the server, but SPDY allows the client to mark priority requests (ex JS, CSS).

3. Server Push and Server Hint

The server can push data to the client – if the client previously established a SPDY connection.
This can be also used for sending assets to the client (ex CSS). To avoid unnecessary pushing of cached data, SPDY provides Server Hint (a suggestion to the client).

Limitations

– HTTPS needs to be used to hide SPDY
– Multiplexing happens on a per host basis (so if content comes from multiple hosts, SPDY improvements are not so visible)
– Limited browser support

Conclusion

SPDY pushed the IETF to define the next version of HTTP: HTTP 2.0 is expected in 2014.
See more: http://www.chromium.org/spdy/spdy-whitepaper

Update, 9 February 2015: Hello HTTP/2, Goodbye SPDY

Oracle trunc

Written on 27 January 2014, 04:40pm

Tagged with: , , ,

A quick note about what the Oracle TRUNC function can do:
If you have a table ORDERS with a date field DATE_CREATION and you want to filter the records with a given date, you can use the TRUNC function.


SELECT ID 
FROM ORDERS
WHERE TRUNC(ORDERS.DATE_CREATION) = TO_DATE('27/01/2014', 'DD/MM/YYYY')

This will truncate the time from the DATE_CREATION and leave out only the date.
The full syntax for TRUNC is:

TRUNC ( date, [ format ] )
date is the date to truncate.
format is the unit of measure to apply for truncating. If the format parameter is omitted, the TRUNC function will truncate the date to the day value, so that any hours, minutes, or seconds will be truncated off.
techonthenet.com

Update, 28/feb/2014: Another Oracle goodie – how to find out details about sequences:


select sequence_owner, sequence_name, min_value, max_value, last_number 
from all_sequences 
order by sequence_owner, sequence_name;

https://community.oracle.com/thread/2340939

3 usability principles about the users

Written on 21 January 2014, 03:49pm

Tagged with: , , ,

From the usability bible, now revisited:

1. Users don’t read, they scan pages.
2. Users take decisions based on trial and error. If they don’t get what they expect, they hit the ‘Back’ button; there is no penalty for being wrong.
3. Users are in hurry; they don’t read instructions. They don’t really care how the things suppose to work; if they find a way that works, they stick to it.

frozen_olaf
Image: Disney