Salvare i video da qualsiasi player flash

So che per i siti più popolari esistono delle comode estensioni, come Easy YouTube Video Downloader, ma di tanto in tanto ci si ritrova a voler salvare un video da un player personalizzato di qualche sito web. Ora vi spiego un modo semplice ed efficace per salvare tutti questi video.

Innanzitutto aprite la pagina col video, mettete il video in pausa, e lasciatelo caricare completamente. Quando il caricamente è finito (ricordatevi di lasciare aperto il browser su quella pagina), dobbiamo solo cercare sul nostro hard-disk dov’è il file che lo contiene. Su linux, o per lo meno sulla mia linuxbox, i flash video (e i flash in genere) vengono stipati nella directory /tmp/, quindi io faccio così:

ls -alh /tmp/Flash*

Verrà stampata a video una lista di file dal nome Flash?????? (dove al posto dei punti di domanda c’è un misto di numeri e lettere), ora con un player video (io uso mplayer) provate a visionare questi file, se il vostro sistema è abbastanza in ordine ce ne saranno pochi, e probabilmente il più grande in dimensioni sarà proprio il video che volete salvare. Alcuni potrebbero essere vecchi video che per qualche crash o altro motivo non sono stati eliminati alla chiusura del browser, visionateli ed eliminateli se non volete salvarli. Quelli che vi interessano li copierete dandogli un nome indicativo e con l’estenzione .flv e il gioco è fatto.

Per gli utenti windows il metodo è lo stesso, però i file vengono salvati in una directory nascosta che ora non ricordo, comunque basta fare una piccola ricerca all’interno delle directory come “dati applicazioni” e simili (tipo le varie “temp” e affini) e scoprirete velocemente dove vengono salvati i video.

Buon salvataggio.

Hack-Game Italiano: Where is Bug

Vi consiglio, anzi ri-consiglio perchè l’avevo consigliato anche nel vecchio blog, un hack game, insomma un gioco d’astuzia e abilità informatica (del tutto legale) che è uno dei più belli nei quali io mi sia cimentato (il più bello in lingua italiana che io conosca).

Per giocare basta andare a questo indirizzo: http://wib.geekplace.org/

Nella classifica dei finalisti sono secondo solo al creatore del gioco, il che vuol solo dire che sono stato il primo a risolverlo, niente più. Se vi interessa la sfida, buona fortuna.

Wordpress theme ugly hack

Siccome questo sito non è l’unico in cui ho le mani in pasta, mi hanno chiesto di realizzare una piccola specie di “easter egg” per un’altro sito basato su Wordpress. Sostanzialmente cliccando un link nascosto nella pagina, si cambia il theme (solo per l’utente che ha cliccato) e anche la lingua (di modo da poter fare una traduzione più simpatica). Non avendo io le conoscenze e il tempo necessario per fare un plugin e/o un beautiful hack, mi sono messo al lavoro per una delle mie solite modifiche sporche e inconsistenti. Però funzionanti.

Come prima cosa, ho creato un file dal nome custom.php dove ho messo queste righe:

<?php

$expire=time()+60*60*24;

if (isset($_GET['go_pirate'])) {
setcookie(”lang”, “pi_PI”, $expire);
setcookie(”theme”, “pirate”, $expire);
}

if (isset($_GET['go_italian'])) {
setcookie(”lang”, “it_IT”, $expire);
setcookie(”theme”, “italian”, $expire);
}

header(”location: http://…”);

?>

Questo file verrà richiamato dal browser come custom.php?go_pirate o custom.php?go_italian e imposterà dei cookies con scadenza fissata in 24 ore. Al termine dell’esecuzione con un apposito header istruisce il browser per andare automaticamente ad un altro indirizzo ( http://… va sostituito con l’indirizzo dell’homepage [o qualsiasi altra pagina] del sito in questione).

Ora che abbiamo il file che imposta i cookies (un’altra possibilità sarebbe salvare nella sessione, $_SESSION ) non ci serve altro che un link nascosto nei due theme, che come ormai avrete capito sono uno in italiano e l’altro in piratese (ecco spiegato anche il cambio di lingua), nel tema italiano il link dev’essere a `custom.php?go_pirate` mentre in quello pirata a `custom.php?go_italian`. Il file custom.php dev’essere raggiungibile, quindi attenzione a come lo richiamate se state usando l’url rewriting.

Ora due modifichine ai seguenti file, prima wp-config.php, nella cartella principale di wordpress, circa alla linea 70, dovete sostituire la linea contenente `define (’WPLANG’, ‘it_IT’);` con:

$wp_tmp_lang = $_COOKIE["lang"];

if ($wp_tmp_lang == ‘it_IT’ || $wp_tmp_lang == ‘pi_PI’) {define (’WPLANG’, $wp_tmp_lang);}
else { define (’WPLANG’, ‘it_IT’);} /* <<– Default language –>> */

Poi nella sottodirectory wp-includes il file functions.php, dovete modificare la funzione `get_option` nel mio file alla linea 321, e all’inizio della funzione dovete inserire queste righe:

if ( in_array($setting, array(’current_theme’,'template’,’stylesheet’) ) ) {
$wp_tmp_theme = $_COOKIE["theme"];

if ($wp_tmp_theme == ‘italian’ || $wp_tmp_theme == ‘pirate’) {return $wp_tmp_theme;}
}

io l’ho inserita subito dopo la dichiarazione della variabile `global $wpdb;`

Ecco fatto, ora dovete solo avere due theme che si chiamano `italian` e `pirate` e due lingue `it_IT` e `pi_PI` (per sapere come si crea una nuova lingua, cercate in rete, troverete molto materiale), e avrete il vostro tema selezionabile.

Russi e tecnica aerospaziale

Cito spudoratamente, la fonte è citata alla fine.

L’ingegno russo (quello vero)
Se però volete un esempio autentico di come i russi abbiano acquisito la fama di artisti della semplicità aerospaziale, ve lo offro volentieri (sono un appassionato del settore).
Le capsule spaziali statunitensi hanno sempre avuto una forma conica, con lo scudo termico sul fondo del cono. Questo richiede però che la capsula assuma un assetto ben preciso al momento di rientrare nell’atmosfera, con il fondo in avanti: qualsiasi altro assetto incenerirebbe il veicolo.
Di conseguenza, gli americani hanno dovuto adottare un complesso sistema di manovra e di orientamento basato su piccoli motori a razzo. I russi, più semplicemente, diedero alla Vostok la forma di una sfera e ne concentrarono il peso verso una estremità, in modo che la capsula assumesse spontaneamente l’assetto giusto.

Estratto dal sito di Paolo Attivissimo (www.attivissimo.net)

Adoro la semplicità, soprattutto quando è anche un’ottima soluzione. L’estratto è da un’articolo che potete trovare quì (e vi consiglio di leggere anche tutto il resto del sito, ottimo servizio antibufala).

http://www.attivissimo.net/antibufala/biro_spaziale/biro_spaziale.htm

MPlayer inserito in Slackware.

Ho appena lanciato il mio periodico (mensile?) aggiornamento del tree di slackware-current, che tengo sul desktop in caso abbia bisogno di installazioni d’emergenza (creo la iso con l’ultima -current e sono pronto a dar battaglia a qualsiasi hard disk). Ecco dicevo, lanciato rsync mi sono accorto che dentro la Slack finalmente c’è MPlayer, che io fino ad ora ho pazientemente ricompilato ogni volta che installavo.

Sono curioso di vedere se e qualche codecpack viene distribuito.

Spam Spam Spam, mi stanno assaltando?

Non si sa. Anzi, direi di no. Però nell’ultimo mese nei trackback e nei commenti, trovo molto spam da moderare, ovviamente sul sito non ne viene pubblicato perchè sono liberticida e modero tutti i commenti e i trackback (cosa che non ho deciso io, mi sa che è un’impostazione di default, ma siccome non ho commenti ma solo spam, ben venga), compresi quelli con link sospetti.

No, non sono siti “malicious” però vorrei sapere se stanno testando qualche nuovo spider per lo spamming visto che tutti i trackback e commenti di spam che ricevo contengono un identificativo numerico univoco, e mi azzarderei a dire pure incrementale. E’ quindi possibile che un beta tester stia provando a spammare su tutti i siti e poco dopo li “crawli” per vedere se l’id univoco viene pubblicato? Nel tal caso saprebbe quali siti hanno un’antispam inefficiente e potrebbero concentarsi su questi siti per quando verrà assoldato da spammers. Mah, sarò complottista, ma per me è una cosa più che plausibile.

Comunque non sono l’unico ad avere di questi problemi, anzi, “googlando” l’indirizzo IP da cui mi arriva lo spam, ho trovato molti altri nella medesima situazione, almeno sono in buona compagnia.

Per ulteriori informazioni, io partirei da questa pagina del Project Honeypot.

Calcolare il pigreco. (π)

Questo è uno script non mio, ma siccome non mi ricordo la fonte, lo copio-incollo senza pudore tanto non è un segreto industriale. Salvate in pi.sh (o col nome che volete) questo scriptino.

#!/bin/bash

time bc -q -l << EOF
scale=$1
4*a(1)
quit
EOF

Rendetelo eseguibile (chmod a+x ./pi.sh) e ora lanciatelo seguito dal numero di cifre dopo la virgola che volete calcolare.

$ pi.sh 10
3.1415926532

real    0m0.009s
user    0m0.000s
sys     0m0.004s

Tenete conto che è un’approssimazione quindi l’ultima o le ultime due cifre non sono molto affidabili. E’ comunque un test carino (visto il “time”) per fare dei piccoli benchmark. Ma soprattutto la vostra curiosità dovrebbe spingeri fino a questa manpage:

NAME
bc – An arbitrary precision calculator language

Contenti?

Anno 2004: Scrivevo codice che ora non capisco

Cavolo, la passione per la programmazione e lo scripting risale praticamente alla prima superiore, quando si usava il pascal a scuola. Turbo Pascal per la precisione. Un linguaggio da matematici. Adesso per lo più uso PHP e Bash, ma ovviamente sono passato per il periodo C, anzi, tutt’ora reputo il C potentissimo, ma lo uso solo quando ne ho strettamente bisogno.

Oggi, anzi, poco fa, ho riscoperto la mia cartella “projects” che ha sempre contenuto esperimenti vari più che veri progetti, e ho trovato il cuore pulsante di un MUD (si, ci giocavo. si, ho smesso). Riguardando il codice, che alla fine non fa altro che aprire una porta in ascolto, scrivere “Ciao” e stare in ascolto da tutti i client facendo un echo di quello che riceve, mi sono accorto che… tutto sommato non ero proprio un pischello, ma c’era molto copia-incolla nei miei programmi.

Ecco cosa mi ha colpito:

tmp_size = sizeof tmp_sockaddr;
if (getpeername(tmp_socket, (struct sockaddr *) &tmp_sockaddr, &tmp_size) < 0) printf(”[WARNING] Can’t perform getpeername().\n”);

Mah, è ipnotico. Lol.

Back from Madrid

Il toro onnipresente.

Il toro onnipresente.

Evitando le solite banalità, è interessante, per mangiare se sei turista cercano di spellarti vivo, come in tutte le città turistiche. La vita notturna non sembra all’altezza di quello che dicono lo guide, ma forse eravamo noi un po’ sottotono. Grande rispetto all’inventore del “Museo del Jamon”, ovvero una serie di bar/ristoranti/macellerie all-in-one dove puoi berti una birra (Caña, 1€) e un Croissant Mixto (croissant meno dolce dei nostri, aperto a mo di panino con dentro prosciutto crudo e formaggio, 1€), puoi comprare un’intero salame, o fartelo mettere nel panino, basta chiedere un bocadillo con salchichón. La città di notte è molto sicura, l’areoporto è immenso, la metro è forse un po’ poco curata.

Come cultura, io non aprezzo più di tanto, però ho abusato del bagno di un museo importantissimo. Altro da dire… non mi sovviene. Ah si… non sanno fare il Cuba Libre, o almeno, dove l’ho chiesto mi hanno detto “ah si… con vodka?” e sono rimasto interdetto. Esperienza positiva, decisamente.

Hola!

Creare un ramdisk

Ogni tanto si vorrebbe una partizione “virtuale” su cui provare i propri smanettamenti. Script potenzialmente dannosi da debuggare, insomma, qualsiasi cosa, e la soluzione è: creare un ramdisk di piccole dimensioni e lavorarci sopra. Un’altro motivo per volerlo creare potrebbe essere per tenerci tutto il sistema, o parte, e mettere a riposo i dischi. Insomma, potenzialmente ha mille utilizzi.

I modi di crearlo sono due, uno è scrivere/usare uno dei device /dev/ram[0-15] (voi potreste averne di più, o di meno) che però hanno una dimensione prefissata, stabilita nel kernel (e modificabile con un parametro all’avvio, googlate). L’altro modo è più pregiato, e si tratta di

mount -t tmpfs none /var/ramdisk -o size=32m

Ovviamente invece di 32m userete la dimensione che vi interessa, e al posto di /var/ramdisk, il mountpoint che volete. Siccome mi sento generoso vi faccio dono anche dell’incipit di un’altra manpage che è in topic

losetup – set up and control loop devices

Buon lavoro.