Archivi categoria: Hacking

Talvolta tocca destreggiarsi con qualche riga di codice di un qualsiasi linguaggio.

( english version)

WordPress 3.0 Multilingue

Dopo alcune settimane di rodaggio della nuova versione di WordPress, ecco un nuovo post col resoconto di quanto ho fatto per customizzarlo, per quale motivo e qual’è il grado di soddisfazione finale.

Col mio precedente blog mi proponevo, come caso di studio, l’implementazione di un blog multilingue facile da mantenere. Per ottenere questo risultato, dopo svariate ricerche, ho fatto ricorso al plugin xLanguage. Inizialmente la scelta mi è sembrata azzeccata, ma – anche in seguito all’abbinamento ad altri plugin, in particolare a WP Super Cache – alla lunga l’operazione si è rivelata complessa da mantenere (ad esempio, se la cache veniva rigenerata dalla visita di un crawler, il risultato era un sito con le localizzazioni mixate tra loro, di conseguenza andava cancellata e rigenerata la cache a mano) e difficile da fare funzionare con i vari plugin, se non andandoli a modificare in modo tale da supportare i tag di xLanguage (modifiche che andavano rieffettuate ad ogni aggiornamento dei plugin). Frustrante e poco efficace.

Con l’uscita di WordPress 3.0 e con la possibilità di abilitarne la modalità multisite, ho voluto provare a gestire le differenti lingue come sottositi distinti, accomunati dallo stesso tema e dagli stessi plugin, ma correlando tra loro sia i blog che le singole pagine/articoli facendo ricorso a dei campi personalizzati da gestire tramite delle minime customizzazioni al tema.

Ecco qui di seguito le modifiche che ho apportato, con in grassetto il path dei file contenenti le modifiche.

Continua a leggere

Nascondere il pulsante di invio dei commenti in reCAPTCHA per WordPress

Nonostante i pochissimi commenti su questo blog, data la sua natura (anche) di piattaforma su cui testare varie tecnologie, mi sono posto il problema di allestire un sistema di CAPTCHA per eliminare il potenziale SPAM, le cui periodiche ondate affliggono i vari blog.
Un CAPTCHA è un sistema volto a discernere se chi lo usa è un essere umano o un computer e, per fare questo, solitamente richiede il riconoscimento e la comprensione di un breve testo digitalizzato e “sporcato” artificialmente con l’introduzione di elementi grafici o rumori sovrimpressi al testo stesso. Questi testi sono impossibili da interpretare per un OCR, per cui la loro corretta interpretazione dovrebbe garantire che chi risponde correttamente al quesito è una persona e non un sistema automatico. In realtà esistono vari modi per aggirare un CAPTCHA, alcuni dei quali prevedono lo sfruttamento di ignari utenti umani con tecniche di phishing (o costruendo dei database di CAPTCHA risolti sfruttando l’attrattiva di siti porno) o di utenti umani pagati per lo scopo (naturalmente, non tutti gli spammatori dispongono di risorse economiche per un investimento del genere).
Dovendo scegliere un sistema, ho vagliato le varie alternative e alla fine ho scelto reCAPTCHA.

Un captcha di 6138B ottenuto utilizzando uno sfondo confuso, scritto con font diversi, di colori vari e non allineati
Un captcha di "6138B" ottenuto utilizzando uno sfondo confuso, scritto con font diversi, di colori vari e non allineati

Continua a leggere

( english version)

Google Gears 0.5.7.0 a 64 bit

Dato che Google non rilascia la versione a 64 bit di questa utile estensione di Firefox (utilizzata da WordPress, ad esempio, per velocizzare la sezione di amministrazione), ho provveduto a scaricare dal repository subversion il sorgente e modificare le parti necessarie a compilarla a 64 bit con GCC 4.3.

Poiché la licenza di Google Gears è la New BSD License, mi affretto a evidenziare le note di licenza:

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
 1. Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.
 3. Neither the name of Google Inc. nor the names of its contributors may be
    used to endorse or promote products derived from this software without
    specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Detto questo, ecco il link alla versione binaria di Google Gears 0.5.7.0 per x86_64:

http://files.freelosofia.org/gears-x86_64/gears-linux-opt-0.5.7.0.xpi

Appena avrò il tempo, probabilmente non per questa ma per la prossima release, piuttosto che mettere a disposizione la sola versione binaria metterò online anche la patch da applicare ai sorgenti.

Consideratela la mia strenna natalizia per voi e… buon download. 🙂

Logo di Google Gears
Logo di Google Gears