Archive for April, 2009

Resettare una password di vBulletin

Posted in Bash, Web Dev on April 29th, 2009 by ildipendente – 1 Comment

I casi sono due: o siete come il 99% delle persone che usano una password per tutto, dal cancello automatico a gmail oppure siete come me, che ha la stessa password per tutto ma ogni tanto, in uno slancio di simpatia, decide di scegliere una password un pò meno stupda del solito. Risultato: la password verrà inesorabilmente dimenticata.

Un paio di giorni fa ero davanti ad una situazione simile. Avevo installato vBulletin e configurato tutto, fatto l’importazione dei contenuti e… dimenticato la password di admin appena avevo finito.

Quando qualcun altro voleva iniziare a lavorare sul forum sono iniziati i problemi. Per fortuna resettare una password non è una cosa difficile se si ha accesso al database.

Come vBulletin memorizza le password

Spulciando un pò nella tabella user di vBulletin possiamo vedere che la colonna password non contiene la password in chiaro (troppo facile se no…) ma una cosa del tipo edf7629646355502c7dbd4d1cc7454b8. vBulletin infatti calcola un hash md5 della password stessa, concatena il risultato con un salt (indovinate dove è contenuto? Esatto, nella colonna salt) e calcola un ulteriore hash md5 della stringa risultante. Se la password è “password” e il salt è “XvT”:

md5(md5('password').'XvT')

o se preferite in bash (io uso il mac ma su linux il comando per calcolare l’hash è md5sum se non sbaglio )

neuromante:~ orso$ echo -n password | md5
5f4dcc3b5aa765d61d8327deb882cf99
neuromante:~ orso$ echo -n 5f4dcc3b5aa765d61d8327deb882cf99XvT | md5
a754fb443a1a435efb6aa361f57f0120

A questo punto vi basta inserire il risultato nel campo password ed il gioco è fatto

Il file ha un’estensione sbagliata… come lo apro???

Posted in Bash on April 27th, 2009 by ildipendente – 3 Comments

Vi è mai capitato di avere un file con una estensione sbagliata e di non sapere con quale programma aprirlo? A me sì! L’altro giorno un cliente mi ha mandato un file che in teoria doveva essere il dump di un database (e quindi un tranquillissimo file di testo con una sfilza di istruzioni SQL) ma in pratica era una serie di allegri caratteri a caso. Per fortuna Manuel ha avuto l’idea di guardare la signature del file con hexdump:

head dump.sql | hexdump

i primi byte erano 1F 8B 08 cioè la signature dei file gz! Et voilà problema risolto! Grazie Oracolo!

Con una mini ricerca ho trovato una lista non credo esaustiva ma molto ricca di signature

Facebook Developer Garage Milano

Posted in Eventi on April 26th, 2009 by ildipendente – Be the first to comment

La settimana scorsa ha visto il primo Facebook Delevoper Garage italiano, organizzato a Milano dai ragazzi da Mikamai.

Parafrasando una delle pubblicità che vedo sempre al cinema: “S’el un developer garage?” Più o meno questo:

Facebook Developer Garages are just like they sound – a place to explore, get gritty, tinker, experiment, and test out ideas for Facebook Platform. Being in the Garage is all about participating, getting your hands dirty, and exploring fresh ideas and solutions. Garages should encourage community involvement and incorporate presentations by participants.

Fico no?

Con questa idea in testa (ed i segni del cuscino sulla faccia, vista l’ora alla quale mi sono svegliato) sono arrivato giovedì a Milano.

Mattino: facebook connect e applicazioni tradizionali

Tutti gli interventi tecnici si sono concentrati al mattino. Un paio riguardavano la novità del momento, Facebook Connect, uno lo sviluppo di applicazioni “tradizionali” per FB. Gli interventi erano di buona qualità ma abbastanza “base”. Sono stati sicuramente utlili per chi volesse farsi un’idea della piattaforma e delle sue potenzialità.

Sì è parlato molto di Facebook Connect, e la discussione che ne è scaturita è stata per me una delle parti più interessanti di tutta la giornata. Buona parte dei dubbi che sono emersi riguardavano due aspetti dell’integrazione con fb connect:

  1. gestire l’integrazione con un sito già avviato: se ho già degli utenti registrati nel mio sito e voglio cominciare ad utilizzare fb connect, come faccio a riconoscere i “doppioni”, cioè un utente che si è già registrato sul mio sito e anche su facebook? Risposta: Facebook permette di accedere ad un versione cifrata (un hash se ho ben capito) dell’email di un utente. Possiamo quindi ricavare lo stesso hash per l’indirizzo email presente nel nostro db e capire se i due utenti sono lo stesso
  2. questioni legali riguardanti il possesso dei dati: supponiamo che io integri fb connect sul mio sito ed implementi un sistema di commenti. Nel caso di un commento diffamatorio chi è il responsabile? Risposta: Facebook, perchè i dati sono conservati sui loro server e nel caso di un commento il nostro sito fa solamente il rendering dei contenuti. Ricordatevi di urlarlo quando gli S.W.A.T faranno irruzione in casa vostra :-P

Alla fine della mattinata è partito un contest per sviluppare una applicazione facebook, riservato a 6 sviluppatori.

Pomeriggio: comunicazione e opportunità di marketing con fb

Una cosa: dato che è un developer garage che c’azzecca questa parte? Va beh…

Il pomeriggio è iniziato con la premiazione del contest. Il tempo per sviluppare era davvero poco ma le applicazioni erano comunque discrete.

Anche in questa parte gli interventi non erano male, ma mi hanno lasciato davvero poco, sicuramente perchè i tratta di argomenti che mi interessano meno.

Tornando verso casa

L’esperienza è stata sicuramente positiva. L’organizzazione è stata buona anche se con qualche pecca, dovuta quasi sicuramente al budget. As esempio non c’era la connessione wi-fi, quindi non è stato possibile fare prove “al volo”. Non dico che debba essere un must ma  per un evento di questo tipo è fortemente consigliato.  La prossima volta porterò sicuramente con me una chiavetta internet… anche perchè vedere delle presentazioni dove ti sparano slide piene di codice non ti lascia molto, se non la voglia di provare (ps: ma perchè c’erano i faretti puntati contro il telone del videoproiettore? Io sono abbastanza accecato me ero comunque in 5a fila e non ho visto una fava nulla)

Tutto sommato sono stato soddisfatto: ho fatto cose, visto gente, creato situazioni ma soprattutto sono tornato a casa con la voglia di provare a sperimentare qualcosa, che credo sia la cosa che debba lasciare un evento di questo tipo

Link simbolici ai file di una directory

Posted in Bash on April 22nd, 2009 by ildipendente – Be the first to comment

Ogni due/tre mesi mi capita di dover creare dei link simbolici a tutti i file di una certa directory. Se ci pensate poteva andare anche peggio… avrei potuto drogrami…

Ad ogni modo, dato che puntualmente mi dimentico come si fà, e ogni volta passo un buon quarto d’ora davanti a “man ln” con lo sguardo da triglia (segue un  broadcast all’interno di Ideato del tipo “come #@!! si fààààààà?????”) lo scrivo qui

In realtà è semplicissmo:

ln -s directory_sorgente/* directory_destinazione

Slideshow con jQuery e jCycle

Posted in Web Dev on April 18th, 2009 by ildipendente – 4 Comments

In questi giorni ho lavorato al restyling di un sito. Una delle richieste principali del cliente era la possibilità di avere uno slideshow di immagini nelle homepage.. se una immagine vale più di mille parole molte immagini valgono più di molte parole!!! (aggiungerei anche che non ci sono più le mezze stagioni)

Cercando quà e la mi sono imbattuto  in un plugin per jQuery veramente carino: jQuery Cycle Plugin

I plugin è veramente ben fatto: ci sono un molti effetti di transizione diversi e un sacco di opzioni. Se come nel mio caso vi serve solo l’effetto “fade” potete scaricare la versione Core (e risparmiate qualche KB che male non fà)

Far funzionare il tutto è veramente semplice:

  • includete nella vostra pagina jquery (versione 1.2.3  o successive):
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  • includete jcycle:

    <script type="text/javascript" src="jquery.cycle.min.js"></script>
  • definite un contenitore per le vostre immagini: il vecchio <div> va benissimo
    <div class="pics">
        <img src="images/beach1.jpg" width="200" height="200" />
        <img src="images/beach2.jpg" width="200" height="200" />
        <img src="images/beach3.jpg" width="200" height="200" />
    </div>
  • attivate lo slideshow
    jQuery(document).ready(function(){
     $('#pics').cycle({
        fx:    'fade',
        speed:  2500
     });
    });

Facile no? :-)

Degno di nota anche la sezione del sito che permette di vedere i vari effetti all’opera

Ps: nella pagina di download di parla anche di un Cycle Lite Plugin.. l’ho provato ma non sono riuscito a farlo funzionare..

Buona pasqua!

Posted in Blog on April 12th, 2009 by ildipendente – Be the first to comment

easter_eggs_by_pralinkova_princeznaLo so che è così è facile… ma almeno questo post non è ancora in draft :-P

Sono a quota -8 post dal mio obiettivo iniziale…e visto che devo cercare di mantenere il mio status di geek/nerd ecco un bel sito sulle uova di pasqua più care ad un informatico

Buona pasqua a tutti!

Easter eggs by ~pralinkova-princezna on deviantART

Cloud Forum 2009 by RBC

Posted in Eventi on April 5th, 2009 by ildipendente – 5 Comments

Dato che è il primo post partiamo con qualcosa di facile :-P

Ieri sono stato al Cloud forum organizzato dal Romagna Businness Club. Fino ad ora le idee che avevo riguardo al cloud computing erano, come dire, nebulose. L’intervento di Simone Brunozzi è stato davvero illumintante ed è riuscito a suscitare il mio interesse per queste tematiche. Nei prossimi giorni (pigrizia permettendo :-P ) proverò sicuramente a ciappinare fare qualche esperimento…

Dal mio punto di vista l’intervento di Federico Feroldi è stato un pò meno interessante, forse perchè meno tecnico, ma penso fosse indispenabile per far capire come queste nuove tecnologie possano essere utili anche alle PMI.