Dal 30 novembre al 6 dicembre
salvare gli uccelli e l’ambiente costa poco e ci guadagnamo tutti
AL VIA LA NUOVA CAMPAGNA LIPU
Read More »
Dal 30 novembre al 6 dicembre
salvare gli uccelli e l’ambiente costa poco e ci guadagnamo tutti
AL VIA LA NUOVA CAMPAGNA LIPU
Read More »
Esterno centro visite:
Emporio LIPU:
Sentiero Beccaccia:
Microsoft ha messo a disposizione di windows update l’aggiornamento per tutti i sistemi windows dei certificati radice (root certificates) che ora comprendono StartSSL.
Quindi chiunque possegga un certificato emesso da StartSSL che sia WoT o differente classe ora, non dovra’ piu’ aggiungere a mano il certificato.
Se non potete eseguire windows update ecco allegato il file che aggiornera’ il vostro sistema:
Se anche voi avete avuto dei piccoli problemi di configurazione con courier-imapd che si traducono in un apparente errore di “certificato non riconosciuto” come valido, vi propongo la soluzione.
Innanzitutto dopo aver creato il certificato tramite StartSSL ci ritroveremo con 2 file: dominio.com.key che è la nostra chiave privata, e dominio.com.crt che è il certificato restituito dall’authority.
A questo punto ci serve un ulteriore file, il certificato intermedio per i server, nel mio caso avendo un account di livello 2, il file che mi serve è questo: sub.class2.server.ca.pem altrimenti se non siete utenti verificati di secondo livello, vi servirà quello di classe1. In ogni caso la lista completa dei certificati scaricabili la trovate qua
Courier-imap richiede il certificato in formato PEM comprensivo di chiave privata e certificato pubblico in questa maniera:
—–BEGIN CERTIFICATE—–
(Certificato SSL)
—–END CERTIFICATE—–
—–BEGIN RSA PRIVATE KEY—–
(Chiave privata)
—–END RSA PRIVATE KEY—–
Quindi cio’ che dobbiamo fare è creare il .pem raggruppando i due file di prima digitando dalla shell quanto segue:
cat dominio.com.crt dominio.com.key >> dominio.com.pem
A questo punto procediamo alla configurazione di courier-imap. Io possiedo gentoo e il file da modificare si trova in /etc/courier-imap/imapd-ssl, voi verificate sulla documentazione della vostra distribuzione dove si trova.
Cerchiamo le seguenti linee e modifichiamole in questa maniera:
TLS_CERTFILE=/etc/courier-imap/dominio.com.pem TLS_TRUSTCERTS=/etc/courier-imap/sub.class2.server.ca.pem TLS_PROTOCOL=SSL3
Ora cio’ che ci rimane da fare è solamente riavviare il demone, utilizzando gli script di avvio-riavvio della vostra distro e il gioco è fatto!
Ebbene si, anche io ho da poco acquistato un iPhone 3G da papà Jobs. Devo dire che il telefono non è per niente male, una volta eseguito il jailbroken, si possono installare tonnellate di software che lo rendono uno strumento utile e divertente allo stesso tempo.
Come già discusso precedentemente, posseggo dei certificati SSL che provengono dalla CA startssl.com.
Purtroppo l’ultimo firmware disponibile per il telefono (v2.1) non contiene all’interno del browser la lista delle CA aggiornata, infatti quando provo ad aprire il mio sito, mi appare un popup avvertendomi che l’autorità che ha rilasciato il certificato non è riconosciuta :/
C’è un modo per bypassare il problema: utilizzando l’iPhone web configuration utility (win32) oppure qua per mac, si possono creare delle configurazioni avanzate da poter installare nel telefono. A questo punto includendo il certificato root di startssl possiamo definire come attendibili tutti i certificati emessi da questo CA.
Vediamo come fare nel dettaglio:
Allora prima di cominciare eseguiamo l’iPhone Configuration Web Utility, apriamo il nostro browser preferito e digitiamo come indirizzo http://localhost:3000 ci si aprirà una pagina che ci chiede di effettuare il login. Di default, i due parametri da inserire sono “admin” per entrambi i campi.
A questo punto dobbiamo convertire il certificato si startssl dal formato “PEM” a quello “DER” necessario per farlo digestire al programma.
Se abbiamo disponibile una macchina unix, semplicemente digitiamo questo comando:
openssl x509 -in ca.crt -inform PEM -out output.cer -outform DER
Altrimenti basterà utilizzare il sistema di gestione di certificati di windows selezionando “dettagli” poi “copia su file” nelle proprietà del certificato.
Ora passiamo a caricare il certificato nell’iCWU



A questo punto, basterà solamente esportare la configurazione, spedirla per mail come allegato e utilizzando il client di posta dell’iPhone, si potrà facilemente installarlo sul telefono.
Come riprova che la configurazione funzioni correttamente basterà aprire con safari l’url: https://www.startssl.com
Comunque spero che nel prossimo firmware, già disponibile come beta, mamma Apple decida di aggiornare come richiesto da startssl la lista dei propri CA. Se qualcuno ne sa già qualcosa mi faccia sapere.
Stasera, mentre guardavo alcune gallerie fotografiche tramite StumbleUpon sono incappato in PicLens. Se avete una galleria su flickr, molto probabilmente già sapete di cosa sto parlando, altrimenti potete scaricarvi il plugin per il vostro navigatore e iniziare ad usarlo già da subito.
Praticamente questo programmino, vi permette di creare un filmstrip “tridimensionale” del vostro album fotografico utilizzando un feed rss opportunamente modificato. (nella homepage di piclens ci sono molti esempi utili ai webmaster che vogliono implementarlo nel proprio sito)
A questo punto mi sono detto: perché non provare a vedere di abilitarlo anche nella mia galleria coppermine?
Scartabellando il forum di supporto ho visto che qualcuno ci aveva già pensato, e trovato una soluzione valida:
Questo post, descrive in maniera semplice e chiara come procedere: basta installare il plugin Easy RSS Feed abilitarlo, e scompattare nella root di coppermine il file rss.zip che trovate allegato.
Ora ricaricando la galleria, dovreste vedere l’icona di PicLens (quella specie di riquadro in prospettiva in fondo alla barra degli indirizzi) cambiare colore e diventare blu, significa che il vostro sito supporta il plugin, cliccateci sopra e godetevi il nuovo giocattolino
Per un esempio pratico, potete andare alla mia galleria
Buon divertimento!
Innanzitutto vorrei spendere 2 parole, sul servizio proposto da StartCom Ltd. L’amministratore, Eddy Nigg, si è sempre dimostrato cordiale e veramente disponibile a qualsiasi ora, giorno e notte, per aiuti, delucidazioni o anche per fare 4 parole. StartCom propone diversi livelli di accesso: al livello 1, il certificato è completamente gratuito, ha validità annuale, non permette la creazione di certificati server con “wildcards” e rimane anonimo, nel senso che i certificati generati non identificano la vostra persona.
Il livello 2, si pone ad uno step più alto, richiede la verifica della vostra identità, costa $24.90, ma al tempo stesso vi offre la possibilità di gestire domini con “wildcards”, più domini nello stesso certificato, ed inoltre attesta e verifica inequivocabilmente la vostra identità (tutti i certificati appaiono registrati col vostro nome/società).
Innanzitutto dobbiamo creare la chiave privata:
openssl genrsa -out dominio.com.key 1024
Con la nostra chiave creiamo la richiesta del certificato:
openssl req -new -nodes -key dominio.com.key -out dominio.com.csr
A questo punto basterà fare copia incolla dal pannello wizard dei certificati server, e dopo pochi attimi StartCom ci fornirà il nostro certificato, del livello al quale possiamo accedere con il nostro account.
Prendiamo ora da questo indirizzo il certificato root e la sottoclasse alla qualle appartiene il nostro livello, class1 o class2, da shell creamo la catena in questo modo:
cat ca.crt sub.classXX.server.ca.crt > ca-certs.crt
A questo punto creiamo la catena, che contiene la nostra chiave privata, e il certificato che ci ha restituito StartCom:
cat dominio.com.key >> dominio.com.crt chmod 400 dominio.com.crt
ora editiamo lighttd.conf abilitando SSL e indicandogli i certificati:
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.ca-file = "/path/to/ca-certs.crt"
ssl.pemfile = "/path/to/dominio.com.crt"
..
}Un bel restart al daemon e il gioco è fatto!
Questo wiki, frutto del lavoro di Gizmo, è un’elegante modifica che applica un miglioramento rispetto alla visualizzazione classica delle immagini fullsize.
Il post originale lo trovate sul forum di Coppermine e precisamente Qua
Col tempo il post e la modifica hanno subito delle evoluzioni, le ultime versioni supportano una specie di slideshow con l’effetto LightBox, purtroppo però, come già notato da Nibbler, questa implementazione non funziona con gallerie grandi, per cui questo wiki prenderà in considerazione solo la funzione originale e cioè quella di creare un popup alternativo con la funzione LightBox.
Vorrei ricordavi, che e’ buona norma, fare delle copie di backup prima di mettere mano ai files, per poter tornare indietro in caso di errore.
A questo punto necessiterete del codice LightBox2 che trovate qua: http://www.huddletogether.com/projects/lightbox2/
In caso servisse comunque a fondo pagina troverete in allegato lo zip della versione attuale (vi consiglio comunque di prenderla dal sito in caso di versione più aggiornate di questa).
Bene, a questo punto procediamo con:
1. Scompattare il file lightbox2.04.zip all’interno della directory lightbox del vostro tema. (es. themes/classic/lightbox)
Ricordatevi inoltre di sostituire nel codice del file template.html e lightbox.js il path esatto. Ossia sostituite “themes/tuotema” con “themes/classic” per esempio, nel caso lo vogliate implementare al tema di default di coppermine.
Come prima cosa, bisogna editare il file tuotema/lightbox/js/lightbox.js per correggere il path delle immagini.
Nelle prime righe del file cerchiamo:
fileLoadingImage: 'images/loading.gif',fileBottomNavCloseImage: 'images/closelabel.gif',
Correggiamo il path come segue:
fileLoadingImage: 'themes/tuotema/lightbox/images/loading.gif',fileBottomNavCloseImage: 'themes/tuotema/lightbox/images/closelabel.gif',
Ora passiamo al mod vero e proprio. Editiamo il seguente file, ponendo tra i tag HEAD il seguente codice:
tuotema/template.html
<link rel="stylesheet" href="themes/your_theme_folder/css/lightbox.css" type="text/css" media="screen" /> <script type="text/javascript" src="themes/your_theme_folder/js/prototype.js"></script> <script type="text/javascript" src="themes/your_theme_folder/js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="themes/your_theme_folder/js/lightbox.js"></script>
Modificare, aggiungendo la seguente funzione, prima del tag di chiusura PHP “?>” :
tuotema/theme.php
// Displays a picture function theme_html_picture() { global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER; global $album, $comment_date_fmt, $template_display_media; global $lang_display_image_php, $lang_picinfo; $pid = $CURRENT_PIC_DATA['pid']; $pic_title = ''; if (!isset($USER['liv']) || !is_array($USER['liv'])) { $USER['liv'] = array(); } // Add 1 to hit counter if (!USER_IS_ADMIN && !in_array($pid, $USER['liv']) && isset($_COOKIE[$CONFIG['cookie_name'] . '_data'])) { add_hit($pid); if (count($USER['liv']) > 4) array_shift($USER['liv']); array_push($USER['liv'], $pid); } if($CONFIG['thumb_use']=='ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width'] ){ // The wierd comparision is because only picture_width is stored $condition = true; }elseif($CONFIG['thumb_use']=='wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']){ $condition = true; }elseif($CONFIG['thumb_use']=='any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']){ $condition = true; }else{ $condition = false; } if ($CURRENT_PIC_DATA['title'] != '') { $pic_title .= $CURRENT_PIC_DATA['title'] . "\n"; } if ($CURRENT_PIC_DATA['caption'] != '') { $pic_title .= $CURRENT_PIC_DATA['caption'] . "\n"; } if ($CURRENT_PIC_DATA['keywords'] != '') { $pic_title .= $lang_picinfo['Keywords'] . ": " . $CURRENT_PIC_DATA['keywords']; } if (!$CURRENT_PIC_DATA['title'] && !$CURRENT_PIC_DATA['caption']) { template_extract_block($template_display_media, 'img_desc'); } else { if (!$CURRENT_PIC_DATA['title']) { template_extract_block($template_display_media, 'title'); } if (!$CURRENT_PIC_DATA['caption']) { template_extract_block($template_display_media, 'caption'); } } $CURRENT_PIC_DATA['menu'] = html_picture_menu(); //((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || ($CONFIG['users_can_edit_pics'] && $CURRENT_PIC_DATA['owner_id'] == USER_ID && USER_ID != 0) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : ''; if ($CONFIG['make_intermediate'] && $condition ) { $picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal'); } else { $picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize'); } $image_size = compute_img_size($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight'], $CONFIG['picture_width']); $pic_title = ''; $mime_content = cpg_get_type($CURRENT_PIC_DATA['filename']); if ($mime_content['content']=='movie' || $mime_content['content']=='audio') { if ($CURRENT_PIC_DATA['pwidth']==0 || $CURRENT_PIC_DATA['pheight']==0) { $CURRENT_PIC_DATA['pwidth'] = 320; // Default width // Set default height; if file is a movie if ($mime_content['content']=='movie') { $CURRENT_PIC_DATA['pheight'] = 240; // Default height } } $ctrl_offset['mov']=15; $ctrl_offset['wmv']=45; $ctrl_offset['swf']=0; $ctrl_offset['rm']=0; $ctrl_offset_default=45; $ctrl_height = (isset($ctrl_offset[$mime_content['extension']]))?($ctrl_offset[$mime_content['extension']]):$ctrl_offset_default; $image_size['whole']='width="'.$CURRENT_PIC_DATA['pwidth'].'" height="'.($CURRENT_PIC_DATA['pheight']+$ctrl_height).'"'; } if ($mime_content['content']=='image') { if (isset($image_size['reduced'])) { $picfull_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize'); $pic_title = $CURRENT_PIC_DATA['title']; $winsizeX = $CURRENT_PIC_DATA['pwidth']+5; //the +'s are the mysterious FF and IE paddings $winsizeY = $CURRENT_PIC_DATA['pheight']+3; //the +'s are the mysterious FF and IE paddings $pic_html = "<a href=\"$picfull_url\" rel=\"lightbox\" title=\"$pic_title\">"; $pic_html .= "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" />"; $pic_html .= "</a>\n"; } else { $pic_html = "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"\" />\n"; } } elseif ($mime_content['content']=='document') { $pic_thumb_url = get_pic_url($CURRENT_PIC_DATA,'thumb'); $pic_html = "<a href=\"{$picture_url}\" target=\"_blank\" class=\"document_link\"><img src=\"".$pic_thumb_url."\" border=\"0\" class=\"image\" /></a>\n"; } else { $autostart = ($CONFIG['media_autostart']) ? ('true'):('false'); $players['WMP'] = array('id' => 'MediaPlayer', 'clsid' => 'classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" ', 'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ', 'mime' => 'type="application/x-mplayer2" ', ); $players['RMP'] = array('id' => 'RealPlayer', 'clsid' => 'classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ', 'codebase' => '', 'mime' => 'type="audio/x-pn-realaudio-plugin" ' ); $players['QT'] = array('id' => 'QuickTime', 'clsid' => 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ', 'codebase' => 'codebase="http://www.apple.com/qtactivex/qtplugin.cab" ', 'mime' => 'type="video/x-quicktime" ' ); $players['SWF'] = array('id' => 'SWFlash', 'clsid' => ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ', 'codebase' => 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ', 'mime' => 'type="application/x-shockwave-flash" ' ); $players['UNK'] = array('id' => 'DefaultPlayer', 'clsid' => '', 'codebase' => '', 'mime' => '' ); if (isset($_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'])) { $user_player = $_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player']; } else { $user_player = $mime_content['player']; } // There isn't a player selected or user wants client-side control if (!$user_player) { $user_player = 'UNK'; } $player = $players[$user_player]; $pic_html = '<object id="'.$player['id'].'" '.$player['classid'].$player['codebase'].$player['mime'].$image_size['whole'].'>'; $pic_html .= "<param name=\"autostart\" value=\"$autostart\" /><param name=\"src\" value=\"". $picture_url . "\" />"; $pic_html .= '<embed '.$image_size['whole'].' src="'. $picture_url . '" autostart="'.$autostart.'" '.$player['mime'].'></embed>'; $pic_html .= "</object>\n"; } $CURRENT_PIC_DATA['html'] = $pic_html; $CURRENT_PIC_DATA['header'] = ''; $CURRENT_PIC_DATA['footer'] = ''; $CURRENT_PIC_DATA = CPGPluginAPI::filter('file_data',$CURRENT_PIC_DATA); $params = array('{CELL_HEIGHT}' => '100', '{IMAGE}' => $CURRENT_PIC_DATA['header'].$CURRENT_PIC_DATA['html'].$CURRENT_PIC_DATA['footer'], '{ADMIN_MENU}' => $CURRENT_PIC_DATA['menu'], '{TITLE}' => bb_decode($CURRENT_PIC_DATA['title']), '{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']), ); return template_eval($template_display_media, $params); }
NOTE:
1. Nel caso la funzione theme_html_picture() sia già presente nel file (theme.php), provate a commentarla sostituendola con questa, altrimenti PHP durante l’esecuzione darà un errore dicendo che la funzione non può essere dichiarata 2 volte.
2. Altro problema è quello che a volte le random images non vengono visualizzate correttamente, per ovviare questo problema c’è un fix. (non necessario con le versioni aggiornate di coppermine)
Nel file include/functions.inc.php cercare la funzione get_pic_data() e cambiare il seguente codice:
Cerca
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' $META_ALBUM_SET ORDER BY RAND() LIMIT $limit2";
Cambia in
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' $META_ALBUM_SET ORDER BY RAND() $limit";
Buon divertimento