Da un po’ di tempo a questa parte tutti i web framework presentano riferimenti all’architettura REST che propone di sfruttare completamente (?) le potenzialità del protocollo HTTP senza livelli aggiuntivi (ie SOAP).

Poi, se proprio vogliamo farci del male… Architectural Styles and the Design of Network-based Software Architectures di Roy T. Fielding.

Ho rispolverato alcuni appunti cartacei relativi i Ruoli di Perl Moose che riporto qui.

  • I ruoli rappresentano comportamenti condivisi fra le classi
  • La classe fa ciò che dice il ruolo.
  • I ruoli non sono classi; infatti i ruoli non si ereditano e non si istanziano.
  • I ruoli vengono consumati da classi o da altri ruoli.
  • I ruoli sono composti in una classe con la funzione with.
  • Tutti i metodi, modificatori, attributi definiti in un ruolo sono aggiunti direttamente alla classe che consuma il ruolo.
  • Attributi e metodi appariranno come se fossero definiti nella classe.
  • Una sottoclasse della classe consumata (cioè con il ruolo) eredita tutti questi metodi/attributi.
package Breakable;
use Moose::Role;

has ‘is_broken’ => (
      is  => ‘rw’,
      isa => ‘Bool’,
);

sub break {
      my $self = shift;
      print "I broke\n";
      $self->is_broken(1);
}

package Car;
use Moose;
with ‘Breakable’;

has ‘engine’ => (
      is  => ‘ro’,
      isa => ‘Engine’,
);

my $car = Car->new( engine => Engine->new );
print $car->is_broken ? ‘Busted’ : ‘Still working’;   # Still working
$car->break;                                          # I broke
print $car->is_broken ? ‘Busted’ : ‘Still working’;   # Busted
$car->does(‘Breakable’)

Riferimenti:

LaTeX è un linguaggio di markup basato sul TeX – un programma di tipografia digitale progettato da Donald Knuth.

I pacchetti relativi tex minimi su Debian sono i seguenti (discendono dall’installazione di texlive-base, e dipendono dalla distribuzione textlive):

libkpathsea5
luatex
tex-common
Pacchetto con file in comune e documentazione generica su TeX e Debian
texlive-common
texlive-doc-base
Documentazione TeX Live
texlive-binaries
texlive-base

Pacchetti necessari per usare LaTeX.

texlive-latex-base
texlive-latex-recommended

Pacchetti aggiuntivi.

preview-latex-style
texlive-pictures
texlive-latex-extra

Ho letto una interessante recensione di questo libro relativo le influenze della proprietà intellettuale.

Che i meccanismi di gestione del copyright cortocircuitino tanto più spesso quanto più passa il tempo è questione sotto gli occhi di tutti, ciò nonostante non è semplice avere idee chiare a riguardo – per motivi a mio avviso anche legittimi.

Il libro dovrebbe focalizzarsi (non l’ho ancora comperato) sul concetto (a me caro) di innovazione e su come questo aspetto venga influenzato dalle norme che regolamentano la proprietà intellettuale.

Abolire la proprietà intellettuale
Michele Boldrin, David K. Levine
Laterza, 2012

Un link al testo in inglese: Against Intellectual Monopoly.
Link a The Magic Cauldron (html, 1999).

Ho trovato interessante il tabellone linkato perchè almeno può dare una direzione da seguire per colmare quel che manca. :)

grafici

Tempo addietro ho forkato Mojolicious su github per commitare un’implementazione.
Col tempo, il mio repo forkato è rimasto indietro e volendo proporre una nuova modifica avevo necessità di allinearmi con il repository di Kraih.

Così…

$ git clone git://github.com/simotrone/mojo.git
$ git remote add –track master kraih git://github.com/kraih/mojo.git
$ git fetch kraih
$ git merge kraih/master
$ git remote set-url origin git@github.com:simotrone/mojo.git
$ git push

Info raccolte da qua.

PS: Ma possibile che non ci sia un pulsantino comodo su github per aggiornare i fork… bah.

Alcune specifiche che vorrei tenere raccolte (pur tenendo conto che il protocollo è estensibile).

Header generici per un messaggio http.

  • Cache-Control
  • Connection
  • Date
  • Pragma
  • Trailer
  • Transfer-Encoding
  • Upgrade
  • Via
  • Warning

Header specifici per request.

  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Authorization
  • Expect
  • From
  • Host
  • If-Match
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • If-Unmodified-Since
  • Max-Forwards
  • Proxy-Authorization
  • Range
  • Referer
  • TE
  • User-Agent

Header specifici per response.

  • Accept-Ranges
  • Age
  • ETag
  • Location
  • Proxy-Authenticate
  • Retry-After
  • Server
  • Vary
  • WWW-Authenticate

Metodi per request.

  • OPTIONS
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • CONNECT

Entity header relativi l’entity body o alla risorsa richiesta. Possono essere aggiunti ai messaggi http.

  • Allow
  • Content-Encoding
  • Content-Language
  • Content-Length
  • Content-Location
  • Content-MD5
  • Content-Range
  • Content-Type
  • Expires
  • Last-Modified
« Previous Articles    
SIMOTRONE WEB PAGE is based on WordPress platform, RSS tech , RSS comments design by Gx3.