Programming
Ottenere liste di stream Last.fm da linea di comando
by Nick on lug.30, 2010, under Musica, Programming, Tools
Oggi propongo un codice molto semplice che permette di ottenere liste di stream da Last.fm come output.
A cosa potrebbe servire? Beh, vi potete sbizzarrire. L’output è studiato per poter essere facilmente parsato da altri programmi (grep e simili). Inoltre modificando leggermente il programma potrete anche ottenere l’url del file mp3 (provate a vedere l’xml completo).
Il funzionamento è semplice:
dando il comando
java Last hanicker “MIAPASSWORD” “lastfm://user/hanicker/personal” 100
ad esempio otterrò all’incirca un centinaio di canzoni che Last.fm ha nella mia libreria personale, ad esempio:
“344374428″,”Naturally”,”Selena Gomez & The Scene”
“2747624″,”Sorted For E’s & Wizz”,”Pulp”
“76053403″,”Svanire”,”Ludovico Einaudi”
“2722039″,”Salvation”,”The Cranberries”
“236136997″,”Talented”,”Dirty Disco Youth”
dove troviamo ID, artista e titolo.
(continue reading…)
Upload sicuri con PHP
by Nick on feb.07, 2010, under Programming, Sicurezza
Il caricamento di file su un server è una delle maggiori fonti di insicurezza per i siti web.

Il documento che riporto, scritto da Alla Bezroutchko (ingegnere della sicurezza presso Scanit e persona presente da vari anni nel mondo della sicurezza con molti bug disclosures a proprio nome), rappresenta un vero vademecum per il caricamento tramite PHP.
Link originale:
http://www.scanit.be/uploads/php-file-upload.pdf
Se non funzionante, accedi direttamente al file cliccando qui.
Personalmente, oltre ai soliti consigli, raccomando sempre di usare per i file caricati un nome casuale, associato a quello del file caricato tramite php. Quando possibile, posizionare i file fuori dalle directory accessibili (o bloccarne l’accesso diretto tramite le configurazioni di Apache) e accederne tramite php. Quando non possibile, controllare il contenuto dei file caricati, bloccare l’esecuzione di script nella cartella dedicata all’upload, verificare accuratamente le impostazioni di apache.
Coderun : IDE PHP Online
by Nick on feb.04, 2010, under Programming, Tools
All’indirizzo http://www.coderun.com/ troverete un comodissimo IDE (Integrated development environment) PHP, Javascript e C-Sharp interamente web-based. In questo modo, anche col primo pc che vi capita sottomano in vacanza, potrete lavorare con comodità. Al momento riscontro vari bug ma il software appare in costante aggiornamento.
E pensando a Google OS, il futuro forse sta un po’ anche qui.
Formattazione Output XML con PHP
by Nick on gen.15, 2010, under Programming
Funzione molto utile per formattare il testo XML in uscita (ad esempio da DomDocument).
function formatXmlString($xml, $indentBase = 0, $indentString = ' ') {
// add marker linefeeds to aid the pretty-tokeniser (adds a linefeed between all tag-end boundaries)
$xml = preg_replace('/(>)(<)(\/*)/', "$1\n$2$3", $xml);
// now indent the tags
$token = strtok($xml, "\n");
$result = ''; // holds formatted version as it is built
$pad = ($indentBase > 0) ? $indentBase : 0; // initial indent
$matches = array(); // returns from preg_matches()
// scan each line and adjust indent based on opening/closing tags
while ($token !== false):
// test for the various tag states
// 1. open and closing tags on same line - no change
if (preg_match('/.+<\/\w[^>]*>$/', $token, $matches)):
$indent = 0;
// 2. closing tag - outdent now
elseif (preg_match('/^<\/\w/', $token, $matches)):
$pad--;
// 3. opening tag - don't pad this one, only subsequent tags
elseif (preg_match('/^<\w[^>]*[^\/]>.*$/', $token, $matches)):
$indent = 1;
// 4. no indentation needed
else:
$indent = 0;
endif;
// pad the line with the required number of leading spaces
$line = str_pad($token, strlen($token) + $pad, $indentString, STR_PAD_LEFT);
$result .= $line . "\n"; // add to the cumulative result, with linefeed
$token = strtok("\n"); // get the next token
$pad += $indent; // update the pad size for subsequent lines
endwhile;
return $result;
}
Tratta (e modificata) da recurser.com.
