Categoria: opensource

  • WordPress 2.1

    E anche questo upgrade e’ andato a buon fine, giusto il tempo di fare il backup dei files e dei dati di mySQL!
    Per la cronaca, ho seguito l’ottimo screencast di Andrea Beggi.
    Buon upgrade a tutti!

    Alla prox

  • Ci siamo quasi…

    Finalmente siamo arrivati alla prima RC. Di che cosa? Ma di Sylpheed, il mio client di posta preferito!
    Il progetto sta procedendo ad un ritmo forsennato, giusto per farvi capire:

  • 29/09/2006 2.3.0beta1
  • 04/10/2006 2.3.0beta2
  • 17/10/2006 2.3.0beta3
  • 31/10/2006 2.3.0beta4
  • 10/11/2006 2.3.0beta5
  • 07/12/2006 2.3.0beta6
  • 14/12/2006 2.3.0beta7
  • 19/12/2006 2.3.0rc
  • E la 2.3.0 stabile e’ prevista per il 24 dicembre, una vera corsa!
    Il changelog attuale e’ piuttosto scarno, e le modifiche riguardano in particolare la gestione dei certificati SSL.
    Non posso che ribadire l’assoluta validita’ di questo programma, una vera bomba.
    Dal punto di vista della programmazione e’ interessante anche la presenza della LibSylph, che sta alla base del programma,e che puo’ essere utilizzata per la realizzazione di un nuovo client di posta. Chissà che non riesca a trovare il tempo per crearne uno ad-hoc per Enlightenment, usando LibSylph in accoppiata con le EWL…

    Alla prox

  • Nuova versione -> programma migliore!

    Ebbene si, in questo caso la risposta e’ affermativa!
    Mi riferisco a Sylpheed, IMHO uno dei migliori client di posta attualmente disponibili, e che sto utilizzando da diverso tempo. L’ho introdotto tempo addietro, e ora ci torno sopra perche’ il progetto sta evolvendo ad un ritmo impressionante, la 2.3.0.beta1 e’ stata rilasciata il 29/09/2006, mentre la beta5 e’ uscita il 10/11/2006, ed e’ una signora beta!
    Il programma e’ molto stabile, ha acquistato parecchia velocita’ di esecuzione, il consumo di memoria e’ praticamente irrisorio, e finalmente sono state introdotte alcune features mancanti che lo rendono ancora piu’ appetibile anche ad una utenza non esperta.
    Il programma e’ ora riducibile ad icona con scomparsa nella traybar, e l’icona che compare cambia alla ricezione di nuovi messaggi, in modo da avere sott’occhio la situazione senza ulteriori click del mouse. Un altro punto a favore e’ la semplicita’ di installazione, che controlla la presenza di una versione precedente, provvede a rimuoverla mantenendo le impostazioni e le email (ma va!), e prosegue con il setup vero e proprio della nuova release.
    Per quanto riguarda gli sviluppatori, e’ molto interessante la presenza di una LibSylph, attualmente in versione alpha: praticamente e’ una libreria di funzioni che permette la creazione di un proprio client di posta, sfruttando questo layer sottostante e gia’ testato (Sylpheed si basa proprio su questo…).
    Non mi resta che consigliarvi di installarlo, magari per prova, e vi accorgerete del valore di questo ottimo programma.

    Alla prox

  • Nuova patch per Phasis: modulo di configurazione

    Come da oggetto, ecco una nuova patch per Phasis relativa al (mio) modulo di configurazione.
    Rispetto alle altre volte ho deciso di scrivere qualche cosa perche’, pur avendo un impatto minimo su una installazione gia’ funzionante, richiede comunque delle modifiche al file di configurazione default.cfg.
    Modifiche che comunque si riassumo in una aggiunta di diverse linee di commenti opportunamente formattate, e da qui’ la scarsita’ dell’impatto sul sistema.
    Piccola annotazione: la patch sovrascrivera’ il vecchio file di configurazione, percio’ consiglio un backup prima di applicarla.
    Il sistema di creazione dei controlli relativi alle opzioni e’ intelligente e completamente realizzato a runtime, a meno dei controlli fondamentali come i panel, i sizer e la struttura base del notebook.
    Di seguito un piccolo help per capire come e cosa ho modificato nel file di configurazione.

    Vecchio file:

    # ------ Impostazioni di rete
    [Server]
    #Address=0.0.0.0
    Port = 0
    
    # ------ Impostazioni di linguaggio
    [Language]
    # Italiano = IT  ; English = EN ; Spanish = SP
    spk = IT

    Nuovo file:

    # ------ Impostazioni di rete
    [Server]
    #sectAlias@@Rete
    #sectDesc@@Impostazioni relative alla rete
    #opt__Port@@Porta@@int@@tc
    #Address=0.0.0.0
    Port = 0
    
    # ------ Impostazioni di linguaggio
    [Language]
    #sectAlias@@Lingua
    #sectDesc@@Impostazioni relative alla lingua
    #opt__spk@@Lingua@@str@@cb@@Italiano:IT%Inglese:EN%Spagnolo:SP
    # Italiano = IT  ; English = EN ; Spanish = SP
    spk = IT

    Le modifiche sono piuttosto chiare, ed effettivamente si limitano a dei commenti (particolari).
    I miei commenti sono di due tipi, uno relativo alla sezione (Server e Language nell’esempio) e uno relativo alle opzioni (Port e spk).
    I commenti di sezione cominciano con “sect”, e proseguono o con “Alias” per una stringa piu’ user-friendly rispetto al nome della sezione, oppure con “Desc” per una descrizione stringata di cio’ che riguarda la sezione. Il separatore, chiaramente, e’ una doppia @.
    I commenti di opzione sono un po’ piu’ complessi, dovendo contenere informazioni differenti: vediamo un po’ di spiegare la formattazione.
    Un template di struttura puo’ essere il seguente:

    opt__nomeopzione@@alias@@dato@@controllo[@@key:val%key:val]

    Il campo opt__nomeopzione si spiega da se, come del resto il campo alias, mentre un discorso a parte va fatto per gli altri campi.
    Il campo “dato” indica il tipo di dato che l’opzione puo’ contenere e che viene validato in fase di modifica del campo stesso, e puo’ essere “int” per un intero, “str” per una stringa o “bool” per uno 0 o un 1.
    Il campo “controllo” indica il tipo di controllo che rappresenta l’opzione, e puo’ essere “tc” per un TextControl, “ml” per un TextControl multilinea, “rb” per un RadioBox e “cb” per un ComboBox.
    I campi indicati fino a qui (opt__nomeopzione, alias, dato, controllo) sono necessari, mentre l’ultimo campo, indicato tra parentesi quadre nell’esempio di struttura e’ richiesto solo se il tipo di controllo e’ “cb”, e contiene una serie di coppie chiave/valore separate da il carattere %, che andranno a riempire in ComboBox.

    E questo e’ quanto, in caso di altre delucidazioni contattatemi pure. Per chiudere, ribadisco che il modulo, per funzionare, ha bisogno di un file di configurazione di nuovo tipo, e che applicando la patch il vecchio file verra’ sovrascritto, percio’ fate un backup del vecchio prima di applicare la patch, se avete apportato modifiche.

    Alla prox

  • Nuovo client di posta

    Ciao a tutti, rieccomi online in un periodo veramente incasinato sia per quanto riguarda il lavoro (ultime produzioni pre-ferie) sia per il privato (pianificazione ferie!).
    Scrivo questo post per rendere pubblico il mio lavoro di transizione da Thunderbird a Sylpheed sotto XP. Generalmente mi trovo a dover gestire tre account di posta, due attivi (lavoro e Gmail) e uno in fase di chiusura (Email.it), con un totale di 73(!) cartelle di posta nelle quali vengono smistate le email che mi arrivano, alcune delle quali con pochi messaggi, ma con altre contenenti, a oggi, fino a 7854 messaggi (la mailing list Php-it di Ziobudda). Ho usato Thunderbird sin dalle prime versioni e devo dire che e’ un ottimo client di posta, ma purtroppo e’ un po’ troppo esoso di risorse per le mie esigenze: qui al lavoro sono abituato a tenere aperti almeno 5 programmi assieme, e i 30MB di memoria che mi occupa, sia aperto che ridotto ad icona, mi danno fastidio.
    Mi sono guardato in giro, e ho scelto Sylpheed: veloce e leggero, basato sulle librerie GTK+ (che su XP girano veramente bene), utilizza il formato MH (un file per ogni mail), ed e’ comunque in grado di importare/esportare file mbox.
    L’importazione da Thunderbird e’ avvenuta perfettamente sia per quanto riguarda le email che per la rubrica (in formato LDIF), e i filtri per la gestione delle mail in arrivo li sto riscrivendo man mano mi servono; lo spam lo gestisco tramite il supporto integrato a bsfilter. I dettagli relativi all’occupazione di memoria sono questi: aperto 16MB, ridotto a icona 4,2MB , e mi sembra un ottimo risultato. Ho rilevato solo due funzionalita’ mancanti, che ritengo utili: 0) un qualche tipo di notifica all’arrivo di una mail, 1) la possibilita’ di impostare come azione di un filtro il forwarding della mail ad un indirizzo di posta. Ma ci ho messo del mio, e il punto 0) l’ho risolto con un programmino scritto da me, che viene lanciato da Sylpheed all’arrivo di una mail, facendo comparire una icona nella traybar e chiudendosi al click sull’icona stessa. Lo zip dell’eseguibile lo trovate qui, mentre lo zip dei sorgenti (Delphi7) e’ qui; per la visualizzazione dell’icona ho utilizzato il componente CoolTrayIcon.

    Ecco un po’ di codice…

    trayNotifier.dpr

    program trayNotifier;

    uses
    Windows,Forms,
    TTrayNotifier in 'TTrayNotifier.pas' {Form1};
    var
    Mutex : THandle;
    {$R *.res}

    begin
    Mutex := CreateMutex(nil, True, 'trayNotifier');
    if (Mutex <> 0) and (GetLastError = 0) then
    begin
    Application.Initialize;
    Application.ShowMainForm:=False;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
    if Mutex <> 0 then
    CloseHandle(Mutex);
    end;
    end.

    Da notare la parte relativa al mutex e al ShowMainForm settato a False: il primo consente l’esecuzione di una istanza sola del programma, mentre il secondo non mostra la form principale.

    TTrayNotifier.pas

    unit TTrayNotifier;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ImgList, CoolTrayIcon, TextTrayIcon, Menus;

    type
    TForm1 = class(TForm)
    TextTrayIcon1: TTextTrayIcon;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    Exit1: TMenuItem;
    procedure TextTrayIcon1Click(Sender: TObject);
    procedure TextTrayIcon1DblClick(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.TextTrayIcon1Click(Sender: TObject);
    begin
    Close;
    end;

    procedure TForm1.TextTrayIcon1DblClick(Sender: TObject);
    begin
    Close;
    end;

    procedure TForm1.Exit1Click(Sender: TObject);
    begin
    Close;
    end;

    end.

    Ah, dimenticavo: trayNotifier.exe va messo nella cartella contenente l’eseguibile di Sylpheed, e nelle Preferenze Comuni di quest’ultimo va spuntata la casella “Esegui il comando…” e scrivendo nel box sotto “trayNotifier.exe”, ovviamente senza apici!

    Alla prox

  • GoogleMaps Mashup per Caterpillar

    Visto che non mi cagano, posto pubblicamente questo mio lavoro…
    Allora, tutti conoscono la potenza del servizio di mappe di Google, e visti i progetti (mashup mi sembra si chiamino) basati su questo mi sono detto “Perche’ non vedere come funzionano?”, e ho impostato il mio progetto come potenziale servizio da offrire al webmaster di una delle mie trasmissioni radiofoniche preferite, Caterpillar.
    Caterpillar si e’ creata una specie di rete alternativa di inviati sparsi in tutto il mondo, in modo da poter avere una voce sul campo in caso di notizie relative ad una determinata citta’ o nazione. La pagina attuale che mostra l’elenco non e’ male, ma non rende bene l’idea della copertura globale di questa rete, e cosi’ sono intervenuto io, con questa pagina. Il lavoro e’ piuttosto semplice, ma il colpo d’occhio che mostra non e’ male! Praticamente si tratta di una pagina semistatica (nel senso che non c’e’ nessuna programmazione server-side) che tramite le API di Google carica un file XML opportunamente formattato contenente i dati anagrafici e geografici degli inviati: il lavoro, in questo senso, e’ abbastanza scalabile, e puo’ essere facilmente interfacciato ad un database tramite un linguaggio di scripting server-side, in modo da avere una gestione dinamica degli inviati.
    Buona visione!

    Alla prox

  • Nuova versione -> programma migliore?

    No, non esserne proprio così sicuro…
    Io ci sono incappato giusto qualche giorno fa, cercando aggiornamenti per il mio aggregatore RSS preferito, Feedreader.
    Menù Help, Check for new version e, whow!, è disponibile la versione 3 (l’attuale è la 2.90), e vado sull’homepage per guardare le release notes, e nella pagina dei download leggo “Version 3.03 is latest release of Feedreader. It contains all bells and whistles that you will possibly need. If you do not know what version to get, then this is the right version to download”.
    Bello, mi dico, download e vai di setup! L’installazione va a buon fine, si accorge dell’esistenza della versione precedente, mi importa l’elenco dei miei feed preferiti, e parte.
    Di certo il lavoro fatto all’interfaccia utente è grosso, e si presenta con una interfaccia Outlook-like piuttosto carina, ma mi hanno stravolto troppo il tutto, e riportare il modo di utilizzo del programma dalla versione vecchia alla nuova mi è quasi impossibile. E il programma si è appesantito parecchio, con tutte le “bells and whistles” che avrei voluto…
    Ma non mi arrendo, e lo provo per qualche giorno, per vedere se le prime impressioni venivano smentite o confermate.
    E purtroppo le impressioni sono state confermate: ci ho provato, ma proprio con questa release non mi ci trovo, troppi fronzoli che mi impongono delle extra operazioni per l’utilizzo… Disinstallo la 3, rimetto la 2.90 e riparto felice con la lettura dei miei feed preferiti. BOCCIATO!

  • Setup di Polyglot

    Ciao a tutti, rieccomi per scrivere un microscopico tutorial sul installazione di Polyglot in WordPress.
    Dico microscopico perché è veramente una cavolata metterlo su e farlo funzionare…
    Allora, scaricate Polyglot da qui, scompattate l’archivio e mettete i files nella directory dei plugin di WordPress: prestate attenzione a ciò che state facendo, e magari provvedete ad un backup del vostro blog, cosa che non guasta mai…
    Dopo aver copiato i files nella directory di cui sopra provvedete ad attivare il plugin dall’apposita sezione del sito di amministrazione del vostro blog, e il gioco è fatto, potete utilizzare Polyglot!
    In che modo?
    Semplicemente taggando il testo del vostro blog tramite <lang_xx> e </lang_xx>, tutto splendidamente well-formed, sia nel titolo che nel corpo del post. Piccolo esempio:

    Titolo: <lang_it> Vino </lang_it><lang_en> Wine </lang_en>
    Corpo: <ang_it> Vino rosso</lang_it><lang_en> Red wine </lang_en>

    Mi sembra tutto autoesplicativo, no??

    Ora basta apportare qualche modifica sia al template della sidebar che al template del singolo post in modo che nella prima compaiano le lingue disponibili (che, se selezionate applicheranno la lingua al blog), e nel secondo compaia la bandierina delle lingue disponibili per il singolo post. Di seguito le mie impostazioni

    sidebar.php

  • Lingue

    single.php

    L’ultima cosa che ho fatto è modificare il file polyglot.php per personalizzare il plugin; ecco uno snippet del mio:

    polyglot.php

    // Default language version - used when proper language version of the text is not present
    $polyglot_settings['default_lang'] = 'it';

    //You can define your own translations of language shortcuts

    //$polyglot_settings['trans']['cs'] = 'česky';
    //$polyglot_settings['trans']['de'] = 'deutsch';
    $polyglot_settings['trans']['en'] = 'english';

    $polyglot_settings['trans']['it'] = 'italiano';
    //$polyglot_settings['trans']['nl'] = 'nederlands';
    //$polyglot_settings['trans']['sv'] = 'svenska';

    //Which language versions you offer for the whole web - use the proper ISO codes!
    //$polyglot_settings['knownlangs'] = array('cs','en','sv');
    $polyglot_settings['knownlangs'] = array('it','en');

    //if there should be shown flags instead of names of languages
    $polyglot_settings['use_flags'] = true;

    E questo è quanto, semplice, chiaro, e funzia subito!!

    Alla prox

  • Aggiornato crossword

    Ho aggiornato il mio cruciverba in DHTML nella parte riguardante la gestione del salvataggio/caricamento delle tabelle, mi sono accorto che c’erano dei problemi di interpretazione dei cookies.

    Alla prox