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).
- Domande e risposte su stackoverflow
- Steve Klabnik: e Haters gonna HATEOAS
- Dr. Elkstein: What is REST?
- R. T. Fielding: REST APIs must be hypertext-driven
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.
Riferimenti:
- Moose::Role
- Moose::Manual::Roles
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.
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.

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 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