Posted: Marzo 8th, 2010 | Author: packz | Filed under: google, Hack, Video | 12 Comments »
Non so se ve ne siete accorti, ma adesso youtube mette a disposizione anche alcuni video con sottotitoli annessi, sottotitoli che non sono "hardcodati" dentro il video, ma vengono aggiunti "sopra" il video dal player; per curiosità ho cercato se era possibile estrarli ed ho scoperto che sì, è possibile.
Un video su youtube è identificato da una certa sequenza di caratteri e numeri, passati alla variabile GET identificata con v (per capirci http://www.youtube.com/watch?v=jHoxZF3ZgTo ha jHoxZF3ZgTo come identificativo del video); una volta che si è a conoscenza dell’identificativo del video che ci interessa, chiamiamolo per semplicità $id, possiamo sapere quali sottotitoli sono disponibili per esso tramite la comoda URL
http://video.google.com/timedtext?v=$id&type=list
Essa restituirà una pagina XML contenente la descrizione dei sottotitoli available, come per esempio
<transcript_list docid="-8324286654099914438">
<track id="0" name="English" lang_code="en" lang_original="English" lang_translated="English" lang_default="true"/>
<track id="2" name="French" lang_code="fr" lang_original="Français" lang_translated="French"/>
<track id="3" name="Polish" lang_code="pl" lang_original="Polski" lang_translated="Polish"/>
<track id="1" name="Spanish" lang_code="es" lang_original="Español" lang_translated="Spanish"/>
</transcript_list>
a questo punto si sceglie il name che più ci aggrada e lo si può scaricare in formato XML con questa URL
http://video.google.com/timedtext?lang=$lang_code&v=jHoxZF3ZgTo&name=$name
dove bisogna sostituire opportunamente le $variabili con i valori ottenuti dalla URL precedente. Attenzione che il formato non è direttamente usabile da un lettore, bisognerebbe trasformarlo in .srt (formato standard dei sottotitoli) e penso bastino poche righe di sed che se qualcunon avesse voglia di scrivere nei commenti, lo lascio come esercizio al lettore che ormai è tardi (per citare Vasco Rossi) altrimenti vi è un programma chiamato google2RST che può scaricare per voi e convertire i sottotitoli ma è un programma Java e secondo me è da folli quando basterebbe la shell. Good Hacking…
Posted: Novembre 12th, 2009 | Author: packz | Filed under: Hack, Installation party, Life, linux, networking | 1 Comment »
Ultimamente mi ritrovo a dover mettere sempre mani sulle chiavette internet e questa volta è toccato a quella fasweb; pensate che sti pazzi ti fanno l’abbonamento e poi ti danno anche una chiavetta con 100 ore…
Il problema è che come al solito la chiavetta ha la funzionalità di switchare fra storage e modem, ma usb_modeswitch non ha questo device fra quelli funzionali e per questo ci sono io; il procedimento l’ho eseguito su una debian, ma dovrebbe funzionare su qualunque sistema linux.
Prima di tutto dovete avere installato usb_modeswitch ed usare i seguenti parametri
DefaultVendor= 0x1c9e
DefaultProduct= 0xf000
TargetVendor= 0x1c9e
TargetProduct= 0x9603
MessageContent="5553424340bc24828000000080000606f50402527000000000000000000000"
Verificate con lsusb che effettivamente avvenga lo switch. Seguentemente dovete compilare e modificare (in ordine inverso) il modulo option che si trova in drivers/usb/serial/ nel tree dei sorgenti del kernel. Per eventuali ulteriori istruzioni leggetevi la guida definitiva per la chiavetta ONDA dove basta cambiare vendor id e product id in maniera adeguata.
Posted: Novembre 3rd, 2009 | Author: packz | Filed under: Bash, Hack, Programmazione | Commenti disabilitati su Sottocomandi custom di git
Da un bel po’ di tempo ormai ho scritto la mia guida git (che peraltro è il mio post più letto) e il tool in questione ormai è andato oltre l’umana comprensione in usabilità e utilità (tranquilli non vengo pagato per questa pubblicità); adesso che sono disoccupato ho un po’ di tempo da dedicare a quello che ho appreso durante quest’anno di lavoro "professionale".
Git come strumento è proprio una toolbox, cioè un insieme di sottocomandi che permettono di eseguire funzioni appropriate su un repository di codice sorgente (e non); come toolbox non potrebbe essere completo se non permettesse di definire comandi custom e non mettesse a disposizione una "libreria" per facilitare le funzioni comuni. Tranquilli, non si parla di linkare codice in C (anche se ha il suo fascino of course) ma di scrivere un semplice (in questo caso di esempio) script per perlustrare le possibilità messe a disposizione.
Partiamo creando un repository di test nella directory temporanea
$ cd /tmp/
$ mkdir testing
$ cd testing
$ git init
Initialized empty Git repository in /tmp/testing/.git/
e di seguito create un file chiamato git-packz
$ cat > git-packz
#!/bin/bash
USAGE="$0 <message>
script di test per sottocomando git
"
PATH=$(git –exec-path):$PATH
. git-sh-setup
if [ $# -lt 1 ]
then
usage
fi
echo "message: "$1
Adesso dentro questo repository è possibile chiamare il comando eseguendo
$ PATH=.:$PATH git packz miao
message: miao
Questo era solo un esempio, quando avrete scritto uno script che considerate definitivo spostatelo (linkatelo) in una directory puntata dal vostro PATH così da poterlo chiamare tramite un semplice git <nome script da cui si elimina il prefisso "git-">; come potete vedere lo script di esempio è molto semplice e l’unica parte fondamentale è quella in cui viene caricata in memoria dalla shell il contenuto di git-sh-setup. Questo non è altro che uno script che definisce alcune funzioni general purpose proprie di un repository git, cioè
- die
- usage
- set_reflog_action
- git_editor
- is_bare_repository
- cd_to_toplevel
- require_work_tree
- get_author_ident_from_commit
Per sapere cosa servono leggetevi la pagina di manuale.
Posted: Luglio 17th, 2009 | Author: packz | Filed under: Hack, Programmazione | Commenti disabilitati su Use the source luke
Oggi ho scoperto questa web application: detexify; in pratica puoi disegnare un simbolo del latex e il programma visualizza la sequenza di controllo relativa. La cosa che mi ha colpito è il fatto che il sito sembra in flash ma in realtà è puro javascript e le funzioni di disegno sono espletate tramite tag canvas (di cui ho già parlato qui).
La ficata è che osservando il codice ho scoperto alcune cose interessanti
Per chi ha voglia di testare del codice relativo a toDataURL si becchi il codice qui. Come potete vedere fare un mini editor grafico è possibilissimo con poche righe di codice.
Quindi il mio consiglio è: quando vedete un sito fico che fa cose che non sapreste come implementare, scaricatevi il codice.
Posted: Luglio 7th, 2009 | Author: packz | Filed under: Bash, Hack, Programmazione | Commenti disabilitati su Indentare file xml
Magari dovete lavorare su file XML di una discreta dimensione e magari usare xpath per estrane info utili ai vostri scopi (uscire con jessica alba?); il casino è che magari il file XML non è formattato in maniera human readable e quindi dovreste indentarlo per capire dove cazzo si trova il nodo che ci interessa. La maniera da manovale è farlo a mano: si parte dall’inizio del file e alla fine di ogni <tag> si inserisce un "nt" e alla fine di </tag> si inserisce un newline e si toglie un TAB dalla lista (non è proprio semplice come pensavo prima di iniziare a scrivere questo post).
Read the rest of this entry »
Posted: Giugno 28th, 2009 | Author: packz | Filed under: Hack, Installation party, Life, Programmazione, TeX | Commenti disabilitati su Installazione TDS compliant di pgf
Succede che magari un hosting abbia addirittura installato TeX sulle macchine, ma noi necessitiamo anche di pgf, un ottimo pacchetto per TeX che permette di produrre grafici fichi, alla stregua del metapost ma molto più semplici da codare, che però dobbiamo installare in locale; come fare? non so se avete mai visto la struttura delle directory di pacchetti TeX (situate di solito in /usr/share/texmf/) ma vi posso assicurare che sono un bel groviglio e non avendo accesso come amministratore non posso installarlo se non in locale appunto. Read the rest of this entry »
Posted: Giugno 24th, 2009 | Author: packz | Filed under: Hack, Video | Commenti disabilitati su Driver webcam gspcav2 su Debian con kernel > 2.6.27
Il mitico driver, della mia mitica webcam da 9.90€, è dalla versione 2.27 internamente al kernel e distruibuito come modulo, ma purtroppo non funziona subito in quanto le librerie di decoding dei formati dei frame restituiti dal device in esame sono state spostate in user space:
# apt-get install libv4l-0
# zless /usr/share/doc/libv4l-0/README.gz
[…]
FAQ
—
Q: Why libv4l, whats wrong with directly accessing v4l2 devices ?
[…]
With gspca being ported to v4l2 and thus decoding to normal formats being
removed from the device driver as this really belongs in userspace, ekiga
would need to be extended with many more often chip dependent formats, like
the bayer compression used by the spca561 and the (different) compression used
by the pac207 and the (again different) compression used by the sn9c102. Adding
support for all these formats should not be done at the application level, as
then it needs to be written for each application seperately. Licensing issues
with the decompressors will then also become a problem as just cut and pasting
from one application to another is bound to hit license incompatibilities.
So clearly this belongs in a library, and in a library with a license which
allows this code to be used from as many different applications as possible.
Hence libv4l was born.
Si dovrebbe lanciare un export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so e poi l’applicazione desiderata: per il mai tramontato mplayer
$ mplayer -fps 15 tv:// -tv driver=v4l2:device=/dev/video0
Per far funzionare skype che magari parte in automatico nella vostra sessione gnome? tenetevi alla sedia: esiste .gnomerc che può eseguire come un .bashrc comandi da eseguire all’avvio della sessione; quindi
$ cat <<EOF > .gnomerc
> LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
> EOF
In realtà non so se funziona veramente :-P… adesso proverò
Posted: Giugno 16th, 2009 | Author: packz | Filed under: Hack, Life, Politica | Commenti disabilitati su Hackmeeting 2009
Anche quest’anno è hackmeeting…
E ricordatevi "home fucking is killing prostitution"…
Posted: Maggio 26th, 2009 | Author: packz | Filed under: Approfondimenti, Hack, Letture, networking | Commenti disabilitati su Botnet
Forse non lo sapete, ma ci sono una milionata di computer che sono infetti dal cosidetto worm conficker (arrivato alla "versione" C[2]) che pare un capolavoro di programmazione ucraina e che disporrebbe di una potenza di attacco pari a 17Gbps[1]; analogamente ai mitici virus anni ’80 che si trasmettono tramite floppy, questi mostriciattoli sono capaci di mirabilezze tecniche quali l’aggiornamento automatico p2p, l’uso della cosidetta tecnica del domain flux per il loro controllo (in pratica genera una lista di domini da cui il worm accetta ordini i quali variano con cadenza temporale ben definita) e grazie a ciò sono capaci di generare quel gran flusso di spam che mi rende contento quando apro la posta la mattina. Che sia il risultato di anni di copie pirata di Windows e incuranza per gli aggiornamenti?
Godetevi questa mappa che mostra la diffusione del sopra citato software nel mondo (notare l’italia).
[1] Your botnet is my botnet: http://www.cs.ucsb.edu/~seclab/projects/torpig/torpig.pdf
[2] Know your enemy: containing Conficker: http://www.honeynet.org/files/KYE-Conficker.pdf
Posted: Aprile 24th, 2009 | Author: packz | Filed under: Hack, networking, ssh | 1 Comment »
ssh ha una bella feature che permette di accedere od eseguire comandi remoti senza dover digitare effettivamente la password di accesso, utilizzando la chiave pubblica che si indica nel file authorized_keys nel lato remoto. È possibile avere associate diverse identità con diverse chiavi, basta crearne di nuove con ssh-keygen e posizionarle in ~/.ssh/; per un facile recupero è consigliabile scrivere una sezione del file ~/.ssh/config del tipo
Host whatever
User packz
HostName dominio.paura.net
Port 2606
IdentityFile /home/packz/.ssh/<chiave privata scelta>
IdentitiesOnly yes
#LogLevel DEBUG3
Quindi potete usare il seguente comando
$ ssh whatever
al posto di
$ ssh -p 2606 packz@dominio.paura.net -i /home/packz/.ssh/<chiave privata scelta>
È importante la sezione "IdentitiesOnly yes" in quanto se presente in authorized_keys anche un’altra chiave,vi esegue l’azione configurata con essa (è uno sclero da debuggare voi sappiatelo). È fondamentale per l’utilizzo con strumenti quali gitosis e/o gitorious.