mercoledì 30 gennaio 2013

L'evoluzione (parziale) di HTTP

Il funzionamento del Web dietro le quinte---a livello HTTP---è cambiato molto negli ultimi anni. Una delle componenti più importanti di questo cambiamento è il protocollo SPDY ("speedy").

L'articolo indicato più sotto descrive molto, molto bene la faccenda. E' molto tecnico, ma è scritto in modo chiaro e (abbastanza) facile da seguire.

Consiglio caldissimamente la lettura a chiunque abbia interesse a capire il funzionamento e l'evoluzione di Internet a livello HTTP-e-simili.

In particolare l'ultima sezione, Future SPDY Gateways, contiene considerazioni molto interessanti sulle forze in gioco, anche a livello economico e di incentivi, e sulle ulteriori (radicali) evoluzioni possibili.
  • an experimental low-latency application-layer protocol designed by Google and introduced in 2009 as a drop-in replacement for HTTP on clients and servers.
  • SPDY retains the semantics of HTTP, allowing content to remain unchanged on servers while adding request multiplexing and prioritization, header compression, and server push of resources.
  • By September 2010, SPDY had been implemented in the stable version of the Google Chrome browser.
  • By February 2011, Google quietly flipped the server-side switch on SPDY, using the protocol to serve major services (such as Gmail, Maps, and search) to Chrome and other SPDY-enabled clients.
  • In February 2011, the Android Honeycomb mobile Web browser received client-side SPDY support, also with little publicity.
  • In September 2011, Amazon announced its Kindle Fire tablet, along with the Silk Web browser that speaks SPDY to Amazon cloud servers.
  • In January 2012, ...development of an open-source Apple iOS SPDY client library.
  • By June 2012, was enabled by default in Firefox 13, bringing combined client-side support (Chrome + Firefox) to approximately 50% of the desktop browser market

SPDYing Up the Web


martedì 29 gennaio 2013

Why We Should Build Software Like We Build Houses

Questo è il titolo di un bellissimo articolo su Wired scritto da Leslie Lamport, uno dei più grandi computer scientists viventi. Stranamente non ha ancora ricevuto il premio Turing, l'equivalente informatico del premio Nobel.
Chiunque abbia a che fare con il software dovrebbe leggerlo con calma. Ripensarci per qualche ora o qualche giorno. Poi rileggerlo con calma, ripensarci ancora e così via.
E' breve e scritto in modo molto semplice e chiaro.
Contiene alcune perle di saggezza che meritano l'inclusione nella mia raccolta di Words of Wisdom: frasi brevi con elevatissima concentrazione di "verità" (in questo blog ne ho messe solo due, dovrò decidermi a metterne anche altre).
Raramente un unico articolo o intervista ne contiene così tante.
Uno dei primi paragrafi ne contiene 4 di fila, caso per me unico:

Most programmers regard anything that doesn’t generate code to be a waste of time. Thinking doesn’t generate code, and writing code without thinking is a recipe for bad code. Before we start to write any piece of code, we should understand what that code is supposed to do. Understanding requires thinking, and thinking is hard.

Seguono poi altri gioielli, uno dei quali solo riportato da un'altra fonte:

Writing is nature’s way of letting you know how sloppy your thinking is.

Writing is hard, and learning to write takes practice. 

The key to understanding complexity is abstraction.

The best language for being simple and precise is math.

La conclusione è un capolavoro:

Thinking doesn’t guarantee that we won’t make mistakes. But not thinking guarantees that we will.