Blog

  • 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

  • Foto delle ferie 2006

    Ieri sera ho selezionato alcune delle foto che abbiamo fatto durante le ferie di agosto, ecco il set su Flickr

  • Mi riaffaccio sulla rete…

    Ciao a tutti, eccomi nuovamente alla tastiera dopo (e durante) un periodo incasinato, come al solito…
    Ecco un piccolo elenco:

    • Ferie : sono andate benissimo, abbiamo visitato dei posti molto belli, e anche il tempo si e’ dimostrato abbastanza benevolo! Avevamo paura che i posti da visitare (Cinque Terre e Garfagnana) potessero essere complicati da visitare con il passeggino, ma alla fine, con il nostro solito spirito di adattamento abbiamo avuto pochi problemi. Non appena avro’ qualche minuto (bella battuta, eh?) vedro’ di postare qualche foto, ne abbiamo di belle! Ultima considerazione: mi manca il campeggio…
    • Blog : ho virtualmente perso le statistiche di accesso! Utilizzavo php-stats, e mi sembrava fato bene, con diverse viste sui dati, e la previsione sugli accessi mi faceva comodo, ma un bel giorno gli admins di Netsons si sono accorti che conteneva delle funzioni che andavano contro le loro policy, e giustamente (si, giustamente, anche se alla fine ci ho quasi rimesso i dati) hanno disattivato gli accounts che lo utilizzavano, finche’ questi ultimi non avessero rimosso php-stats. Anche io ho fatto così, e sono passato a SlimStat, ma con i dati aggiornati al 20 settembre… Prima ho detto che ho virtualmente perso le statistiche: i dati ce li ho ancora, ma non ho ancora capito se e come adattarli per le tabelle di SlimStat, se qualcuno sa come mi contatti!!!!
    • Lavoro : causa cambiamento di priorita’, il lavoro relativo ai moduli GSM/GPRS della Telit con Python builtin e’ slittato a data da destinarsi, ma nel frattempo e’ saltato fuori un progettino interessante con una mobo EPIA della Via, per ora impostato con WinXP Embedded, ma sarei proprio un fesso a non cercare una soluzione basata su Linux…
    • Phasis : dopo una prima, semplicissima patch per correggere un problema di visualizzazione nel modulo help ho cercato di rendere disponibile all’utente di Phasis un modulo che permettesse la modifica delle opzioni di configurazione all’interno del programma stesso, senza dover editare a mano il file default.cfg. Le critiche al mio lavoro sono state veramente ottime e precise, e gli utenti che hanno provato il modulo mi hanno indicato chiaramente i problemi e i bug (e le possibili soluzioni a questi) presenti nel modulo. Grazie al loro contributo li sto sistemando, in modo che il modulo sia funzionale.

    Inoltre, sto facendo l’inserimento della Franci al nido, ed e’ veramente bravissima, si trova bene sia con le dade che con gli altri bimbi. Sono veramente contento!!

    Alla prox

  • Ferie!

    Finalmente ci siamo, domani parto per le tanto agognate ferie!
    Mi aspettano due belle settimane di relax (speriamo!), una vicino alle Cinque Terre e una in Garfagnana, vicino a Lucca.
    Ritornero’ online verso il 21 agosto, con un sacco di belle foto e alcuni progetti interessanti in Python: il primo e’ l’utilizzo del sottosistema Python inserito all’interno dei moduli GSM/GPRS della Telit, il secondo e’ una partecipazione piu’ attiva al progetto Phasis, il gestionale opensource scritto appunto in Python.

    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

  • Foto della Novecolli 2006

    Ciao a tutti, finalmente lo studio fotografico che ha realizzato il servizio alla Novecolli ha finalmente messo in linea le foto relative all’evento, e nel sistema online ho trovato queste tre foto che mi ritraggono (si vede il watermark, ma e’ tutto quello che ho…).
    Appena ho tempo passo allo studio fotografico e quelle piu’ belline le compro!

    Salita a Pieve di Rivoschio: cominciano a indurirsi i muscoli

    Discesa di Pieve : uno dei tratti piu' belli della gara

    Barbotto : la Salita, quella con la S maiuscola

    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!

  • Fotoromanzo…

    Ciao a tutti, stamattina ho avuto un po’ di tempo libero, e sistemando i files del computer dell’ufficio ho trovato questo simpatico “fotoromanzo” che ha realizzato un mio collega qualche anno addietro, durante una delle mie sessioni nelle vesti di barbiere, guardate e godetene tutti!

    Alla prox