Perl.It sta cercando di organizzare, attorno all'Italian Perl Workshop 2009, una giornata dedicata a Moose con Dave Rolsky. Tutti i dettagli sono disponibili qui:

http://conferences.yapceurope.org/ipw2009/news/422

Perl.It is trying to organize, around the Italian Perl Workshop 2009, a day devoted to Moose with Dave Rolsky. All the details are available here:

http://conferences.yapceurope.org/ipw2009/news/422

Italian Perl Workshop 2009

|

Da oggi sono ufficialmente aperti iscrizioni e call for paper per l'edizione 2009 (la 5a) dell'Italian Perl Workshop. L'evento si terrà a Pisa, presso l'Area di Ricerca del CNR, che è sponsor di questa edizione dell'evento.

Lo scorso anno si sono registrati numeri piuttosto interessanti per un workshop: oltre 30 talk (2 tracce per 2 giorni), 120 partecipanti, 20 sponsor, ospiti internazionali del calibro di Marcus Ramberg, Matt Trout, Tim Bunce e Rafael Garcia Suarez.

Quest'anno si punta a fare ancora meglio. Pertanto, il mio suggerimento è di non mancare assolutamente. Cliccate qui per visitare il sito del workshop

mod_perlite is a very interesting project which aims to create a lightweight Perl module for Apache which can compete in the market range where PHP dominates.

The project already has something which actually works, but which needs to be polished. If you can and want to help, take a look at the web site!

Italian: per gli italiani, qui c'è un articolo in merito.

Pocket Perl

|

Pocket Perl
Stefano Rodighiero
Apogeo, 2008
ISBN: 978-88-503-2778-2
€ 7.90

Rating: 4.5/5

Pocket Perl ha due virtù immediatamente riconoscibili: il prezzo contenuto ed il piccolo formato. Quest'ultima caratteristica fornisce al novizio di Perl che si accinge alla lettura un'idea di "snellezza" che lo spinge a cimentarsi nell'impresa, a differenza di un testo di grosse dimensioni che potrebbe scoraggiare qualcuno.

Va bene, siamo solo alle apparenze per ora. Il contenuto sarà ciò che ci si aspetta, e cioè una guida chiara, sufficientemente sintetica ma al contempo approfondita al punto giusto, per imparare Perl? Andiamo dunque ad indagare.

Intelligentemente, il libro non parte subito parlando di Perl come linguaggio: la prima cosa che assomiglia ad un "Hello, World" è infatti a pagina 10 (e si tratta solo di un test per verificare che l'installazione sia funzionante, l'"Hello World" vero è a pagina 15). Prima di ciò viene sinteticamente indicato come installare l'interprete, e soprattutto vengono messi in evidenza i punti di forza di Perl non relativi al linguaggio in sé. Anzitutto Rodighiero parla di CPAN, l'immenso archivio di moduli Perl che è opportuno che ogni sviluppatore o aspirante tale impari ad utilizzare sin dall'inizio; a questo scopo vengono fornite preziose indicazioni su come configurare CPAN, scaricare ed installare i moduli. Il secondo punto di forza svelato è la community: è altamente probabile che attorno a Perl ruoti una delle più interessanti comunità di sviluppatori nel mondo dei linguaggi di programmazione, e qui ne vengono indicati i principali "punti di ingresso" a livello italiano ed internazionale. Infine, viene presentato l'immenso mondo della documentazione fornita con l'interprete, vera e propria colonna portante della distribuzione.

La trattazione relativa agli aspetti del linguaggio, pur trovandoci di fronte ad un libro tascabile, è alquanto articolata e rigorosa: si spazia dalle basi fino ad oggetti, regular expression e persino vere e proprie "chicche" come la trasformata di Schwartz. Il capitolo 8, inoltre, fornisce un'interessante panoramica su quanto disponibile per quanto riguarda programmazione web, GUI, ed altre interazioni della propria applicazione con il mondo esterno - chiaramente, in questo caso, viene solo scalfita la superficie dei singoli argomenti.

I contenuti sono piuttosto aggiornati, pertanto tutte le principali caratteristiche della versione 5.10 di perl vengono trattate. È un peccato che alcune tecnologie, come Moose (qui comunque accennato) e DBIx::Class (al posto del quale qui viene proposto il più rudimentale Class::DBI) si siano consolidate solo di recente e quindi non ci sia stata la chance di trattarle: andate dunque ad esplorarle su CPAN!

Nel complesso, a mio avviso Pocket Perl copre una precedente lacuna nel panorama italiano relativo a Perl, che era la mancanza di un testo "introduttivo ma non solo", chiaro e ben scritto, una guida che partisse dalle basi ma che fosse al contempo in grado di mostrare gli aspetti più interessanti del linguaggio, avvicinando nuovi programmatori a Perl. A livello di "mancanze", per quanto mi riguarda ce n'è solo una: il libro rimanda alla documentazione fornita con l'interprete quanto riguarda la gestione di stringhe Unicode. Considerata l'importanza dell'argomento ed il fatto che la documentazione in linea è spesso nebulosa, sarebbe forse stato opportuno dedicarvi una sezione.

After looking at the open source alternatives, I decided the price was worth to buy the MCIMageManager plugin for TinyMCE. This open source (LGPL) Rich Text Editor is probably the best out there: the great image upload plugin, developed by the same folks, is however not free - but definitely worth its money.

The backend of MCImageManger is in PHP or .NET: I decided to stick with the PHP version, as my web server is on Unix, but still had to find out how to integrate it with my web application (which is in Perl) making sure only logged in users would be allowed to upload files. There are code examples for JSP, ASP Classic and several PHP configurations, but nothing related to Perl. So, I ported the authentication script - it was easy enough and here's the result.

If you use Perl and you want to integrate authentication with the one of your system, you need to use ExternalAuthenticator in order to share sessions between Perl and PHP/.NET. It's not that difficult: since the Perl ExternalAuthenticator script is not provided, you can find one I wrote myself here.

MCImageManager configuration

File to edit is likely ''config.php''. If you use ''Web.config'', these instructions still apply.
First of all, you need to enable the ''ExternalAuthenticator'':

$mcImageManagerConfig['authenticator'] = "ExternalAuthenticator";

Scroll down a bit and you'll find the relevant configuration options for ''ExternalAuthenticator'':

// ExternalAuthenticator config
$mcImageManagerConfig['ExternalAuthenticator.external_auth_url'] = "/manage/tinymce_auth.pl";
$mcImageManagerConfig['ExternalAuthenticator.secret_key'] = "TheKey";

tinymce_auth.pl

Put this file at the location you specified in ''config.php''. You need to edit some parth: the secret key and, of course, the part which verifies the user is authenticated.

#!/usr/bin/perl

use strict;
use warnings;

use CGI::Carp qw/fatalsToBrowser/;
use CGI::Simple;
use CGI::Session;
use HTML::Entities;
use Digest::MD5 qw/md5_hex/;

# Must match the one in config.php
my $secretKey = "TheKey";

my $q = CGI::Simple->new();
print $q->header(
    -type   => 'text/html; charset=UTF-8',
);

my $session = CGI::Session->new();

# See if session-id is OK
if ( !$session->param('idadmin') =~ /^\d+$/ ) {
     print "Not logged in";
     exit;
}

# Come configuration variables can be overridden here
my %configuration = (
    #'filesystem.rootpath'   => '/some/path',
    #'filesystem.path'       => '/some/path',
);

my $data = '';
for my $cv (values %configuration) {
    $data .= $cv;
}
my $key = md5_hex($data . $secretKey);

print '<html>';
print '<body onload="document.forms[0].submit();">';
print '<form method="post" action="' . encode_entities($q->param('return_url')) . '">';
print '<input type="hidden" name="key" value="'. encode_entities($key) . '" />';
for my $ck (keys %configuration) {
     my $enc_ck = $ck; $enc_ck =~ s/\./_/g;
     print '<input type="hidden" name="'
        . encode_entities($enc_ck)
        . '" value="'
        . encode_entities($configuration{$ck})
        . '" />'
    ;
}
print '</form></body></html>';

This work is free software, by , and is provided as-is. If you need support, ask in the TinyMCE forums.

Find recent content on the main index or look in the archives to find all content.

Recent Assets

  • thunderbird_logo.png

Categories

Pages

Powered by Movable Type 4.23-en