Sticky Postings
HTML_QuickForm_Wizard
Durante lo sviluppo dei siti di amministrazione dei vari servizi che offre la mia società (un ISP di Roma) mi è capitato tante volte di dover implementare un wizard per l'inserimento guidato delle informazioni (da parte di utenti interni, clienti, wholesale, etc).
HTML_QuickForm_Wizard permette di creare complessi wizard, con la possibilità di definire la sequenza delle pagine in maniera non lineare. Continue reading "HTML_QuickForm_Wizard"
HTML_QuickForm_LiveText
Ecco un'altra classe, un elemento custom di HTML_Quickform, che ho implementato per migliorare le interfacce dei siti che sviluppo internamente nella mia società e che pubblico dopo un po' di pulizia del codice.
HTML_QuickForm_LiveText è un campo di testo che intercetta la pressione dei tasti ed effettua una ricerca AJAX al volo, basandosi su quanto è stato scritto al momento, e mostra i risultati, se si seleziona uno dei risultati il suo valore va a rimpiazzare il contenuto della campo di testo.
Continue reading "HTML_QuickForm_LiveText"
AJAX_Locking
Uno dei problemi maggiori che si incontra quando si sviluppa un CMS, o comunque un sistema simile, è quello di permettere ad un solo utente di modificare un "oggetto" già inserito nel database.
Per ovvie ragioni, non si possono tenere bloccate le tabelle sul db (in una transazione oppure eseguendo proprio i comandi appositi) durante tutta la fase di modifica da parte dell'utente.
D'altra parte, visto che i progetti devono essere coclusi per l'altro ieri, spesso ci si concentra prima sulla realizzazione dell'applicazione e poi sugli altri aspetti e spesso nel caso del pericolo di modifiche concorrenti, ci si affida al fatto che, dall'analisi dei casi d'uso, gli utenti generalmente non hanno in carico le stesse pratiche e quindi il rischio che vadano a modificare "oggetti" altrui è minimo.
AJAX_Locking è un framework che utilizza la tecnologia AJAX per gestire blocco d'accesso degli oggetti di una applicazione web. Continue reading "AJAX_Locking"
Friday, July 27. 2007
AJAX_Locking 0.4.2
Sono stato costretto a rinominare il metodo delete della classe Driver (che serve per cancellare un lock) in deleteLock, a causa del fatto che IE7, considerando delete una parola riservata, stabiliva che la definizione in javascript di AjaxLocking era errata. Il tutto silenziosamente.
La nuova versione è disponibile attraverso il consueto canale PEAR pear.ambrosanio.com:
http://pear.ambrosanio.com/get/AJAX_Locking-0.4.2.tgz
Grazie mille a Igor Reis che mi ha segnalato che con IE7 la pagina di esempio non funzionava.
Friday, April 13. 2007
HTML_QuickForm_LiveText 0.2.7: Opera vs value
Nuova release per HTML_QuickForm_LiveText.
Apparentemente, in Opera, non è possibile impostare correttamente un attributo di nome "value" in un elemento di tipo DIV.
Vedere il commento di xep.
Ho sostituito "value" con "_value" ed ora anche in Opera tutto funziona correttamente.
Grazie xep
Thursday, April 12. 2007
Release 0.2.6 per HTML_QuickForm_LiveText
Nella nuova release è stata aggiunta la possibilità di definire quali chiavi mostrare nel pannello dei risultati (quando ovviamente questi sono composti da più chiavi) anche quando tutte loro sono utilizzate.
La nuova opzione da passare all'elemento è keys e deve essere un array contenente le chiavi da visualizzare.
Nella pagina di esempio il secondo campo livetext mostra solo le chiavi id e denominazione anche se i risultati forniti dal server contengono ne contegono di più.
Sunday, April 1. 2007
HTML_QuickForm_LiveText 0.2.3
Con questa nuova versione la posizione della box dei risultati è "fissata" dopo il caricamento della pagina.
Monday, March 26. 2007
Storia a lieto fine di crash contemporaneo di due hd su 3 configurati in RAID 5 con hotspare
Oggi sono riuscito a farlo resuscitare ma... mettetevi comodi che ve la racconto..
Allora la macchina ha 4 dischi:
hda 40gb /boot in raid1, swap in raid5, / in raid5La mattina alle 9.00 spengo il server perchè sulla via di casa mia ACEA sta facendo dei lavori, torno a casa la sera alle 19.00 e riaccendo il tutto, fin qui tutto ok, quando, alle 00:29:25, hda inizia a fare qualche pernacchia... ma il RAID 5 ancora regge! Continue reading "Storia a lieto fine di crash contemporaneo di due hd su 3 configurati in RAID 5 con hotspare"
hdb 40gb /boot in raid1, swap in raid5, / in raid5
hdc 40gb /boot in spare, swap in raid5, / in raid5
hdd 40gb /boot in spare, swap in spare, / in spare
HTML_QuickForm_LiveText 0.2.1
Friday, March 16. 2007
HTML_QuickForm_LiveText 0.2.0
Continue reading "HTML_QuickForm_LiveText 0.2.0"
Tuesday, February 13. 2007
AJAX_Locking 0.4.1
Friday, February 9. 2007
AJAX_Locking 0.4
- getLocks
- delete
Il primo restituisce l'elenco dei lock attivi nel archivio.
Il secondo permette di cancellare un lock per ragioni amministrative (senza indicare il proprietario del lock).
In questo modo è facilmente scrivere una pagina di amministraizone che permetta di cancellare un lock.
Purtroppo System_SharedMemory non fornisce alcun supporto per elencare le chiavi contenute pertanto i due metodi per questo driver non sono implementati (l'implementazione di default della classe base AJAX_Locking_Driver restituisce false).
Sunday, December 10. 2006
AJAX_Locking 0.3.1
Ho aggiunto un nuovo Driver che utilizza il filesystem per conservare i dati dei lock, nel caso sia impossibile utilizzare System_SharedMemory che incorpora la stessa funzionalità quando la si usa con il tipo 'file'.
Ho corretto anche un bug nel metodo lock di AJAX_Locking_Driver_SharedMemory che apparentemente non aveva effetti collaterali, ma cmq era un errore.
Friday, December 1. 2006
Nomination per AJAX_Locking
Votatelo!
Wednesday, November 29. 2006
La trasmigrazione delle anime
La mattina ci eravamo accorti che una macchina, anzie quella maledetta che mi ha fatto perdere una nottata due settimane fa, buttava un calore infernale dalla mascherina frontale.
La macchina era stata assemblata in casa in un case 2U, 4 dischi SCSI in RAID 5 sul frontale, 2 Xeon da 3.
Non era pensabile di rifare una nuova macchina e spostare il contenuto dei dischi e d'altra parte, dopo una rapida occhiata nel magazzino, era chiaro che non avevamo nemmeno l'hardware buono per farne una copia e magari spostare solo i dischi.
Così abbiamo deciso di cambiare il case: abbiamo trovato un case della Supermicro che faceva al caso nostro, sempre 2U ma con una bella batteria di ventolone tra i dischi e la scheda madre e alimentatore che promettevano un uragano quando fossero state in funzione. Ma nessuno si ricordava quale motherboard fosse stata installata e perciò chissà si adattava al nuovo case. Continue reading "La trasmigrazione delle anime"

