Archivi per la categoria ‘Sviluppo’
jQuery Mail Obfuscator
Oggi cercavo un metodo semplice e non intrusivo per impedire parte dello spam derivante dalla pubblicazione di un indirizzo mail in chiaro su di una pagina web.
Ovviamente la miglior soluzione possibile è dotarsi di un buon filtro anti-spam (gMail?) perchè qualunque tipo di mail obfuscator si concretizza in un problema di usabilità ed una barriera di usabilità!
Ho comunque creato una soluzione Javascript basata su jQuery che propone un piccolo e semplicissimo approccio al problema.
Nuovo pannello di configurazione per JuniorCMS!
Dopo un paio di giorni di progettazione ho dato vita al pannello “Configuratore di Applicazione” il quale è stato integrato nel core del sistema ed è raggiungibile da menu “jCMS -> Configuratore Applicazione”.
Questo pannello è suddiviso in “pannelli” e “sezioni” che raggruppano delle variabili di cui è possibile specificare il valore “run-time”. Questi valori vanno a sovrascrivere eventuali valori specificati nelle configurazioni statiche (_config.php) dei vari plugins.
Ricerca full-site per JuniorCMS.com
In questi giorni sto lavorando ad un plugin di ricerca il cui scopo è indicizzare tutti i contenuti pubblici di un sito web e permetterne una ricerca full-text.
Funzionalità di Base:
- Indicizzazione dell’output di una qualunque richiesta gestita dal CMS
- Gestione temporale (cache) di un indice di ricerca
- Eliminazione automatica delle risorse non più disponibili
- Grabbing automatico dei meta-tags (title e description) per la visualizzazione dei risultati
- Possibilità di configurare con precisione i testi del risultato della ricerca durante la produzione di una risorsa
- Personalizzazione dell’url del motore di ricerca
- Completa personalizzazione del look&feel del motore di ricerca
Alcuni Dettagli:
Il plugin può essere arricchito tramite addOns per migliorarne l’integrazione con altri software (news, offerte, etc). Una qualunque pagina, ad esempio, può personalizzare in modo molto forte il testo visualizzato come risultato di una ricerca.
Sto inoltre cercando delle collaborazioni per aumentare la validità della ricerca interna e creare un piccolo sistema di page-ranking e/o ricerca approfondita… ma forse questo comporta un forte dispendio di risorse!
Futuri sviluppi:
Nuovi plugin estenderanno questo motore di ricerca fornendo funzionalità di amministrazione quali:
- visualizzazione e possibilità di modificare il database degli indici cache
- possibilità di rendere permanente un indice (non più soggetto a scadenza cache)
- possibilità di nascondere un indice alla ricerca
- possibiltià di modificare la destinazione di un indice verso una pagina interna (redirect)
Altre idee di sviluppo riguardano una gestione statistica del motore di ricerca al fine di ottimizzare i contenuti del sito:
- Log delle ricerche effettuate
- Monitor delle ricerche frequenti
- Monitor delle ricerche vuote
- Monitor delle parole chiave più usate
- Possibilità di realizzare un “redirect di ricerca” ovvero prendere una query di ricerca e trasformarla in un’altra query.
Ulteriori ipotesi (molto remote) di sviluppo in versione “advertising”:
- Possibilità di inserire banner nei risultati della ricerca da template
- Emulazione di un sistema “AdSense” nei risultati della ricerca
Concatenare stringhe in Objective-C
Objective-C è sicuramente un linguaggio lungi dall’essere developer-friendly!
Metodo Classico di Concatenazione
// Definizione delle variabili iniziali: NSString *nome = @"Marco"; NSString *cognome = @"Pegoraro"; // Composizione della stringa concatenata: NSString *risultato = [nome stringByAppendingString @" "]; NSString *risultato = [risultato stringByAppendingString cognome];
Questo è il codice che Apple ci chiede di scrivere per creare una concatenazione con uno spazio in mezzo! Semplicemente incredibile da credere!!!
Metodo della Stringa con Formato
Un modo per tamponare questa incredibile mancanza di semplicità del linguaggio Objective-C è l’utilizzo del metodo stringWithFormat che consente di inserire una o più variabili all’interno di un modello contenente dei placeholder:
// Definizione delle variabili iniziali: NSString *nome = @"Marco"; NSString *cognome = @"Pegoraro"; // Composizione della stringa concatenata: NSString *risultato = [NSString stringWithFormat:@"%@ %@", nome, cognome];
Questa alternativa riduce leggermente la complessità del codice da scrivere il quale rimane però incredibilmente complicato e prolisso!
