Tempo addietro m’ero fatto uno script in bash per scrivermi rapidamente un layout html standard (coi tag html, head, body, il doctype, ecc.).

Aveva qualche opzione, ma era una cosa semplice e comunque utile.

Ora posso farlo semplicemente così:

$ perl -MCGI=:standard -e ‘print start_html("[% title %]"),end_html;’

<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>[% title %]</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

</body>
</html>

Il [% title %] è per preparare il campo a TT, niente di che.

Bello entrare in camera. :)
Girasoli in camera

Trafiletto sul giornale.

Si laurea 93enne

“Un esempio per i giovani”. Così l’ha definita il rettore dell’Università di Urbino dove Adriana Iannilli, romana, 93 anni, ha conseguito la laurea in Giurisprudenza.

Complimenti alla vecchietta, ma l’idea che possa fungere da esempio mi lascia perplesso.

Ho pescato sto vecchio articolo dall’archivio del corriere: Adriana, 88 anni, matricola in facoltà. Non riuscivo a mettere insieme molti particolari, poi ho trovato pure questo: Adriana, dottore con lode.

Molto bene, e complimenti a lei. 3 lauree. Poteva lasciarmene una a caso. :-P

E’ una fogna? No, è una patta. Comunque il punto è che risulta sempre aperta, ed è un po’ imbarazzante.
Un tempo ero più moralista, ora penso che sia prioritario preservare la libertà privata dei singoli cittadini; la morale, che è personale, viene dopo.

Comunque attualmente io ricordo questi fruitori finali qua, e non dubito ce ne siano altri.

E mi ricordo ancora il mitico Cesa che proponeva bonus extra per i parlamentari.

Il segretario del partito di Cosimo Mele, il deputato coinvolto nella notte a luci rosse in un albergo di via Vittorio Veneto, ieri aveva detto: “La solitudine è una cosa seria e la vita da parlamentare è dura per chi la fa seriamente”. Per cui, ed ecco la proposta Cesa, distribuiamo più soldi ai deputati affinchè possano ricongiungersi con la famiglia. “L’Udc – puntualizza il partito – difende con convinzione l’unità delle famiglie, di tutte le famiglie, e dunque anche di quelle dei parlamentari, convinta che vivere ed operare avendo affianco i propri congiunti, consenta maggiore serenità”.

Che gente fantastica.

Non è la solitudine la cosa seria, è che chiudere la patta dovrebbe essere “un impegno concreto” (TM).

Cari politici, secondo me siete troppo pagati se avete anche modo di sputtanarveli in coca e mignotte; fate delle scelte, non si puo’ avere tutto nella vita.

La prima volta che ebbi a che fare con subversion non sapevo minimamente che cosa stavo facendo. La cmdl era:

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

Seguivo gli “ordini” di un mio amico per scaricarmi i sorgenti di mplayer, ed era ottobre del 2007.
Quando chiesi cos’era svn, mi venne risposto “è un RCS”. Sono sicuro di aver tentato di capire tramite wikipedia, ma sono rimasto brancolante nel buio per lungo tempo.

Due anni dopo, posso dire di capire (un po’) subversion – e anche di usarlo. :)

Per cominciare: subversion (svn) è un sistema centralizzato di controllo delle revisioni.
In pratica se avete un progetto software, un manipolo di script, o qualunque cosa in sviluppo, potete usare subversion per tenere traccia dei cambiamenti effettuati (nonché per avere una copia centralizzata e facilmente distribuibile e aggiornabile del vostro progetto).

Un tempo gli RCS erano locali e quindi usati dai singoli programmatori, ma con l’avvento dei progetti open source scritti a più mani diventò importante avere un deposito centrale (facilmente ottenibile attraverso ftp), nonché permettere ai dev di non pestarsi i piedi.

Un progetto collettivo può ricevere molti aggiornamenti da più parti, ed è importante che ogni sviluppatore agisca sulla versione desiderata del progetto senza cancellare le modifiche di qualcun’altro: un ftp intelligente.
I sistemi di revisione furono utili perchè gestivano le concorrenze ragionando su diff e patch limitando i conflitti e mantenendo uno storico delle patch.

Attualmente ci sono due tipi principali di RCS: i sistemi centralizzati (come subversion) e quelli distribuiti (come git o mercurial); i sistemi sono profondamente diversi, e comunque non ne parlerò qua (i sistemi distribuiti hanno vite indipendenti in ogni loro repo, e richiedono un’organizzazione più netta).

Ci sono tre concetti importanti da cogliere quando si usa un RCS: il ramo trunk, il branching ed il tagging.
Dopo aver sviluppato un progetto, capita di voler identificare dei punti fermi (magari col numero di commit): questa attività è il tagging, e consiste nel dare un’etichetta ad un commit specifico che determina la versione (ie: del software); in pratica il tag definisce un punto fermo nello sviluppo.

Raggiunto un punto fermo (versione X), posso cominciare a sviluppare una versione più avanzata del progetto che lo porterà avanti (versione Y). Nel caso sia necessario riprendere in mano il progetto (X) precedentemente concluso (magari per aggiustare un bug scoperto con la versione Y già avviata), dovremo fissare il bug e patch‘are la versione: piuttosto che creare quindi un ulteriore repository (uno per versione) useremo il branching, sottolineando che c’è una linea di sviluppo che ha un’origine comune, ma un percorso differente.
Le branch possono essere parallele e poi riunirsi (tipico per lo sviluppo di feature alternative che poi vengono introdotte nel branch di base), oppure completamente indipendenti.

Lo sviluppo di diverse branch e della loro riunione (merging) è sempre stato un punto importante per i sistemi di revisione, e ha portato alla nascita dei sistemi distribuiti (git e hg). Attualmente anche svn permette dei merge fra i vari branch (dalla versione 1.5), e la differenza è legata principalmente alla gestione centralizzata o distribuita del db.

Il manuale di subversion.

Per importare un progetto ex-novo in subversion:

$ svn import /path/al/progetto/files file:///home/sim/storage/subversion/repos/progetto -m "initial import"

(Importo i files di progetto nelle dir virtuali di svn, con un commento (-m) che indica la prima importazione.)

Per scaricare un progetto in locale dal database:

svn checkout file:///home/sim/storage/subversion/repos/progetto nome_progetto

(Vado a prendere dal server i file del progetto e li metto in una dir locale che si chiama “nome_progetto”.)

svn list file:///home/sim/storage/subversion/repos/

(Controlla ed elenca tutte le dir virtuali all’interno di repos/ nel database svn.)

Quest’uomo ne sa talmente tanta, da poter fare serenamente l’arrogante. :D
Un mito esagerato, con una classe sopraffina. :-P

(Putroppo il video ve lo dovete andare a vedere su TuTubo.)


Mi potrei fermare qui, ma di recente ho scoperto un altro “arrogante” di prepotenza che merita il post:

2 ore e mezza di derapata. Dovevo fare il gommista…

Il suo sito www.losceriffo.com comunque è ancora meglio (con soundtrack per chi sa).

Dedicato a chi non sa cosa sono le derapate… :-P

Per servire un semplice file di testo come risultato di una chiama HTTP (una semplice view txt, insomma) con Catalyst:

sub testo : Path {
        my ($self,$c) = @_;
        my $txt = ‘Servi un file di testo, cavolo!’;
        $c->res->content_type(‘text/text-plain’);
        $c->res->header(‘Content-Disposition’, qq/attachment; filename="data.txt"/);
        $c->res->body($txt);
}

Semplice semplice. :)

« Previous Articles    
SIMOTRONE WEB PAGE is based on WordPress platform, RSS tech , RSS comments design by Gx3.