-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 


« Gennaio 2004 | Home | Marzo 2004 »

Settima Esegesi

What a piece of work is Perl 6!
How noble in reason!
How infinite in faculty!
In form how express and admirable!

– W. Shakespeare, "Hamlet" (Perl 6 revision)

A sorpresa (io non me l'aspettavo, quindi almeno per me è una sorpresa, e per giunta molto gradita) esce la Settima Esegesi di Damian Conway, che riguarda i format. Se cercate la corrispondente Settima Apocalisse non la troverete, poichè Larry Wall salterà direttamente alla dodicesima, che parlerà di oggetti (son curioso). Non ho, per adesso, nulla di particolare da dire sul nuovo articolo di Conway, se non che è bello lungo, as usual, e sembra estremamente piacevole da leggere.

Inviato da larsen alle 11:49 | Commenti (3)

come ti fo il test della sub

vorrei mettervi a parte di una piccola tecnica che ho avuto modo di sperimentare e mi è parsa valida.

ieri stavo lavorando ad un mio programma. una cosa piuttosto complessa, varie centinaia di righe, che richiede diverse parametri per girare correttamente e compie un bel numero di operazioni -- ergo, ci mette un po' a girare.

mi è capitato di aver bisogno di verificare il funzionamento di una sub che avevo aggiunto, e quindi di dover fare dei test solo di quella, passandogli vari parametri.

potevo fare diverse cose per raggiungere il mio scopo, ma tutte presentavano qualche svantaggio: far girare l'intero programma solo per verificare la sub, con l'aggravante di preparare dei dati di input che coprissero tutti i casi da testare, avrebbe richiesto troppo tempo. copiare e incollare la sub in un file a parte e far girare quello, per poi ricopiare la versione funzionante nel programma principale. oppure lanciare il programma con il debugger (perl -d), dare vari comandi (ad esempio x mysub(1, 2, 3)) e osservare i risultati... insomma, tutte cose che mi avrebbero distratto troppo da ciò che avevo bisogno di fare (va bene, sarò sincero: cose che avrebbero urtato la mia prima virtù cardinale, la pigrizia :-).

allora mi è venuta in mente questa, che a mio avviso è la più immediata delle soluzioni: ho messo la mia sub in un blocco BEGIN, e nello stesso blocco varie linee con cui verificare tutti i casi che mi interessavano, seguiti da un bel exit(0);.

per chiarire come funziona la cosa in concreto, ecco l'esempio: diciamo che la mia sub è mysub, e voglio verificare cosa fa se chiamata con 1, 2 o 3 parametri. nel programma originale avevo:

# varie righe di programma...

sub mysub {
    # corpo della sub...
}

# resto del programma...

per fare i test, ho temporaneamente trasformato il codice in questo (in blu le righe aggiunte):

# varie righe di programma...

BEGIN {
sub mysub {
    # corpo della sub...
}
print mysub(1);
print mysub(1, 2);
print mysub(1, 2, 3);
exit(0);
}

# resto del programma...

ovviamente il tutto funziona fintanto che la sub da testare è facilmente "isolabile", nel senso che non dipende da altre parti del programma principale, che risulterebbero indefinite. altrimenti mettere il blocco BEGIN accanto a tutto ciò che serve potrebbe essere più tedioso del necessario. eventuali moduli utilizzati dal programma, però, vengono letti in ogni caso (use viene implicitamente eseguito in un blocco BEGIN).

va da sé, inoltre, che il programma dovrebbe avere un flusso relativamente lineare (ossia, non compiere operazioni potenzialmente "pericolose" all'interno di blocchi BEGIN a sua volta).

detto ciò, spero che questa minimale tecnica di debug possa risultarvi utile e magari aiutarvi a risparmiare un po' di prezioso tempo :-)

Inviato da dada alle 13:06 | Commenti (0)

OpenPec - Posta Elettronica Certificata

Alla vostra attenzione il progetto OpenPec - Posta Elettronica
Certificata; cerchiamo collaboratori, enti privati o pubblici per
contribuire alla realizzazione e testing del progetto (per
informazioni scrivere a info@openpec.org).

OpenPEC è un progetto Open Source nato per realizzare
un sistema di Posta Elettronica Certificata conforme
alle linee guida indicate dal Centro Nazionale per l'Informatica
nella Pubblica Amministrazione (CNIPA).

Il progetto, fondato dall'azienda Ksolutions di Pisa, viene
rilasciato con una licenza di utilizzo GNU General Public License.
Il suo sviluppo avviene in forma collaborativa incoraggiando quindi a
contribuire alla sua realizzazione, uso e diffusione.

Nel marzo 2004 è previsto il rilascio della prima versione Beta.

OpenPEC non è un sistema di posta elettronica sviluppato
completamente da zero ma si propone come estensione dei mail server
Open Source più diffusi sul mercato, come Postfix, Sendmail e qmail,
e, in prospettiva, dei sistemi commerciali.
In quest'ottica, OpenPEC può essere visto come un "plug-in" di
questi sistemi.
Secondo modalità specifiche legate all'implementazione dei singoli
server, OpenPEC può anche essere "aggiunto" ad un sistema già
installato e funzionante: in questo modo si garantisce una naturale
evoluzione dei sistemi esistenti evitando difficili e spesso costose
operazioni di migrazione o di conversione. Questa è sicuramente una
caratteristica molto importante per chiunque debba adottare
un sistema di PEC per lo scambio dei documenti.

OpenPEC è sviluppato in Perl e progettato in modo da essere modulare
per permettere facili estensioni e adattamenti.
Dal punto di vista implementativo la base di partenza è un "branch"
del progetto Open Source AMaVIS, che estende i mail server più diffusi
con funzionalità di antivirus nei messaggi di posta elettronica.

Caratteristiche:
. Compatibilità con i più diffusi MTA (Mail Trasfert Agent)
Per garantire la massima compatibilità, l'interfaccia di comunicazione
è realizzata mediante implementazione di un gateway SMTP e l'utilizzo
di "pipe" Unix.

. Prestazioni
La scelta di adottare un ambiente multi-process rende inoltre il plug-in
meno invasivo in termini di tempo di elaborazione dei messaggi: all'avvio
il server OpenPEC genererà un pool prestabilito e configurabile di processi
e si preoccuperà di mantenere il loro numero costante per non appesantire
il carico complessivo della macchina.

. Affidabilità
L'affidabilità è garantita salvando immediatamente la mail su un file
temporaneo e mantenendo la comunicazione aperta con l'MTA fino ad elaborazione
ed eventuale dispatching ultimati: in caso di errori o di chiusura erronea
della comunicazione, l'MTA provvederà a recuperare la mail e rielaborarla
successivamente mediante il suo sistema di code.

Link di riferimento
Homepage del progetto: http://www.openpec.org
Sito CNIPA: http://www.cnipa.gov.it/...
AMaVIS-new: http://www.ijs.si/software/amavisd


Team di sviluppo OpenPec.

Inviato da flazan alle 18:13 | Commenti (3)

YAPC::Europe 2004

arms_logo.gif

Il sito di YAPC::Europe 2004 ha aperto i battenti.
L'edizione europea della YAPC quest'anno si terrà a Belfast, dal 15 al 17 settembre.

Inviato da larsen alle 11:45 | Commenti (1)

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google