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

IE8: bug nella visualizzazione di fieldset e legend

Questo articolo propone una semplice soluzione ad un problema identificato su IE8 quando si tenta di nascondere la legend di un fieldset.

Visualizzazione Errata:

ie8 rendering errato di fieldset con legend nascosto

ie8 rendering errato di fieldset con legend nascosto

Visualizzazione Corretta (work-around applicato):

IE8 visualizzazione di un fieldset con legend nascosto (workaround applicato)

IE8 visualizzazione di un fieldset con legend nascosto (workaround applicato)

Read more

Verificare una richiesta AJAX in CakePHP

if ( $this->RequestHandler->isAjax() ) {
  do AJAX stuff...
}

VirtualBOX on Mac: come si scrive la @ (chiocciola – at)

Per inserire una chiocciola (@ – at) in un campo di indirizzo di posta elettronica utilizzando la tastiera Mac utilizzare la seguente combinazione di tasti:

ctrl + alt + ò

VirtualBOX è un software di virtualizzazione gratuito. VirtualBOX permette di installare sistemi Windows o Linux sul proprio Mac utilizzando un computer completamente simulato.

Uno dei principali vantaggi di VirtualBOX rispetto ai suoi concorrenti (Parallels Desktop e VM Ware) è il formato del file di computer virtuale il quale è compatibile nei sistemi Windows, Linux e Mac.

Ciò significa che è possibile creare un proprio computer virtuale, salvarlo in una chiavetta USB ed utilizzarlo attraverso un qualunque computer disponibile.

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!

Google Waves: una prima impressione!

Al fine di un’esasperante periodo di lunga attesa ricevo il tanto agognato invito a Google Waves. In meno di un millisecondo accetto e faccio login sul nuovo e promettente sistema Googoliano e subito mi godo il video introduttivo.

Purtroppo il simpatico scienziato pazzo mi fa capire che Google Waves non è molto distante da una chat multimediale con storico permanente simile a gMail!

Ammetto che, causa pressanti impegni di lavoro, ho dedicato meno di 5 minuti a Google Waves ma le aspettative erano veramente molto più grandi di quello che mi sono trovato davanti.

Probabilmente approfondendo l’utilizzo dello strumento cambierò idea… ma non è la prima impressione quella che conta???

Suonerie mp3 personalizzate sull’iPhone! Si può fare!

1. Utilizza iTunes per selezionare il tuo brano preferito e configurane la durata a 30 secondi max:

Apri iTunes e utilizza la ricerca per isolare il brano che vuoi portare nell’iPhone come suoneria.

Clicca sulla riga del brano con il tasto destro del mouse quindi seleziona la voce Informazioni. Clicca sulla scheda Opzioni e personalizza le impostazioni di inizio e fine del brano.

La durata totale non deve superare i 30 secondi affinchè il risultato sia compatibile con iPhone!

2. Crea un clone AAC del tuo mp3:

Mantenendo selezionato il brano originale utilizza il menu dell’applicazione: Avanzate -> crea versione AAC.

iTunes crea un nuovo file a partire dalla selezione dei tempi precedentemente impostata. Questo è il file da utilizzare come base per la tua nuova suoneria!

3. Esporta il file su desktop:

Trascina il nuovo file sul desktop o in una cartella a piacere per creare una copia estenra ad iTunes. Questa operazione è necessaria in quanto iPhone utilizza l’estensione di file “M4R” per le suonerie mentre il file generato da iTunes utilizza l’estensione “M4A”.

Utilizzando l’opzione rinomina (Windows potrebbe nascondere le estensioni di files, utilizza opzioni cartella per renderle visibili e modificabili) imposta l’estensione “M4R” per rendere il tuo file compatibile come suoneria iPhone.

4. Importa la suoneria in iTunes

Trascina il nuovo file in iTunes e assicurati che venga associato alla tipologia “suoneria” (che trovi nella barra laterale sinistra).

5. Sincronizza il tuo iPhone!

NOTE: eseguendo l’operazione ho notato che l’iPhone non importa suonerie nel cui titolo è presente un apostrofo. Per non incappare in problemi strani consiglio di utilizzare solamente caratteri standard come nome delle suonerie!

iPhone: via i CSS da Safari!

Una delle cose che più mi urtano del mio nuovo iPhone 3Gs è proprio Safari.

Il meraviglioso browser di casa Apple si dimostra eccezionale nel supporto dei javascript più complessi e nel rendering perfettamente corretto delle pagine più articolate.

Purtroppo visualizzare sullo schermo dell’iPhone pagine progettate per uno schermo da 20″ è a dir poco frustrante: senza un microscopio elettronico si fa poco.

E’ comunque possibile zoomare la pagina con le dita… la prima volta è entusiasmante ma poi ci ritroviamo a leggere sullo schermo all’incirca il 4% dell’informazione totale… dov’è finito il resto della pagina? Semplice! E’ tutta attorno a quello che stiamo visualizzando! E’ sufficiente continuare a scrollare come dei forsennati e procurarsi varie fratture all’indice!

La soluzione è fortunatamente molto semplice: salviamo tra i bookmarks di Safari una bookmarlet fatta apposta per disabilitare i CSS della pagina!

La seguente pagina contiene una spiegazione dettagliata del procedimento: http://dorward.me.uk/software/disablecss/.

CakePOWER: url lang request

Ho introdotto in CakePOWER un sistema per gestire la richiesta di un particolare flag di lingua mediante un finto parametro da infilare nell’uri della richiesta.

Spiegazioni dettagliate e documentazione: http://www.cakepower.org/wiki/doku.php?id=lang:index

CakePOWER: il progetto è ufficiale!

Il primo logo ufficiale!

Il primo logo ufficiale!

Ho registrato il dominio www.cakepower.org e sto iniziando a pubblicare una wiki di documentazione ufficiale del progetto CakePOWER.

Il sito sarà per ovvie ragioni completamente in inglese… un inglese che, non ho dubbi, i più troveranno rozzo e scorretto! Col tempo migliorerò!

Ricordo che il progetto è aperto a chiunque desideri collaborare. Sul sito ufficiale sono esposti i link al canale Twitter per gli aggiornamenti veloci e al repository su Google Docs per scaricare tutti gli aggiornamenti che andrò a pubblicare.

Presto verrà aperto il bug traking sul Google Code per raccogliere le segnalazioni di chi vorrà collaborare a testare e debuggare il progetto.

www.cakepower.org