I like also Iga Wywrval

Posted by mgutman on November 13th, 2008

Adoro la bellezza spirituale della musica di Chopin, ma ogni tanto mi va di indugiare anche su quella terrena.

P.S. …anche lei è polacca come Chopin

bash, grep, sed, awk…: dinosauri o classici ?

Posted by mgutman on November 9th, 2008

Se siete degli utenti Windows questi comandi per voi risulteranno sconosciuti, ma sono il pane quotidiano degli amministratori UNIX/Linux.

Bash” è in realtà la “linea di comando”, attraverso la quale è possibile digitare manualmente dei comandi ( in nome tecnico la “shell” ), proprio come il “Dos Prompt” di Windows. Per analogia, uno script bash è analogo ad un “batch file” di Windows.

Grep” è invece un’utility che non esiste in Windows, ed è in sostanza un tool di ricerca all’interno di file di testo. Per esempio ‘grep chopin compositori.txt’ ritornerà le righe del file compositori.txt che contengono il nome ‘chopin’.

Sed” ( stream editor ) è un tool che prendendo in entrata un file effettua una serie di sostituzioni. Per esempio il comando sed s/chopin/mgutman/ compositori.txt sostituisce dentro il file compositori.txt il nome chopin con il nome mgutman.

Infine, “Awk” è lo strumento più complesso della famiglia, è anch’esso uno strumento di trasformazione come sed ma gestisce anche le colonne oltre alla righe ( per farla semplice )

Ho deciso di mettere alla prova questi strumenti sul mio Mac ( che è Unix ) creando uno script per la il download delle playlist youtube di liszt73 ( che ringrazio ancora )

Ho impiegato diverse ore per arrivare ad un qualcosa di funzionante, anche perchè alle mie prime armi. Ecco lo script:

#!/bin/bash 
 
function GetVideo {
videoUrl="http://it.youtube.com/watch?v=$1"
echo "url is:" $videoUrl
# scarica il sorgente della pagina, rimuovendo i caratteri newline \n
HTML=".source$1.html"
wget -q -o"$1".wget.log -O - $videoUrl | tr -d "\n" >$HTML
 
# estrai da un div il titolo del video
title=$(egrep -o '<div id="watch-vid-title" class="title">.<h1\ >[^<]*</h1>'<$HTML | sed 's/<div id="watch-vid-title" class="title">.<h1\ >\([^<]*\)<\/h1>/\1/' \
| tr ":" "-" | tr "/" "-")
echo "title is" $title
 
mv "$1".wget.log "$title".source.log
 
# estrai dal codice javascript l'hash ( variabile "t")
hash=$(egrep -o '\"t\": \"[-_a-zA-Z0-9]*\"' $HTML | egrep -o  '([-_a-zA-Z0-9]{2,})')
echo "hash is:" $hash
 
# dall'url estrai l'ID del video
video_id=$(echo $videoUrl | egrep -o 'v=[^\&]+' | egrep -o '[^=]{2,}')
echo "video_id is:" $video_id
 
# calcola l'URL per scaricare il video in formato MP4
mp4url="http://www.youtube.com/get_video?fmt=18&video_id=$video_id&t=$hash"
echo "mp4url is:" $mp4url
# ... e in formato Flash
flvurl="http://www.youtube.com/get_video?video_id=$video_id&t=$hash"
echo "flvurl is:" $flvurl
 
# scaricalo in background
wget -o"$title".log -O"$title".mp4 $mp4url || wget -o"$title".flv.log -O"$title".flv $flvurl &
 
# pulizia
rm $HTML
}
# invocare con yt_pl.sh playlistID( e.g. 6E6D77B78DCE77CA ) pagenr
 
out=".pl$1-$2.html"
plurl="http://it.youtube.com/view_play_list?p=$1&page=$2"
dList=".dl$1-$2"
info="$1page$2info.txt"
 
# salva il sorgente della pagina playlist 
wget -O$out $plurl 
 
# cerca nel sorgente i link ai video
cat $out | grep -o "<a href=\"/watch?v=[-_0-9a-zA-Z]*&feature=PlayList&p=[-_0-9a-zA-Z]*&index=[0-9]" | sort -u \
| egrep -o 'v=[-_0-9a-zA-Z]+&?' \
| sed -E 's/v=([-_0-9a-zA-Z]+)&?/\1/' >$dList
 
echo "Elenco ID" >> $info
cat $dList >> $info
echo "Sorgente HTML" >>$info
cat $out >>$info
 
 
# per ogni ID invoca la funzione GetVideoMP4
for i in $(cat $dList)
	do
	GetVideo $i
done
 
#pulizia
rm $out
rm $dList

Una volta salvato come ytpl.sh, per utilizzarlo dovete lanciare un comando del tipo:

./ytpl.sh  <playlistID> <numero totale di pagine>

Esempio

./ytpl.sh CA9F80F64D7C2400 2

In pratica lo script usa wget per scaricare i sorgenti delle pagine di youtube, ricavare alcuni parametri e generare gli URL di scaricamento, affidandoli ancora a wget. Alcune cose divertenti che si possono fare sono:

  • mettere in “piping” i comandi, ovvero l’output di un comando è reindirizzato all’altro tramite il carattere “|” . Questa possibilità da luogo ad un codice molto compatto.
  • mettere in una variabile i risultati di un comando tramite variabile=$(comando)
  • redirezionare l’output di un comando su un file o sullo schermo, tramite il carattere “>”
  • prevedere un comando di fallback nel caso che un comando fallisca. Nel mio caso, se fallisce il download dell’mp4 ( non sempre i video sono disponibili in mp4 ) , parte un download del flash. La sintassi è “comando1 || comando2″

Gli ostacoli più grandi che ho trovato sono stati:

  • Generare le corrette espressioni regolari ( per esempio lo standard grep non accetta “+” come quantificatore per 1 o più caratteri. E’ necessario usare egrep o l’opzione “-E” )
  • Capire come funzionano le sostituzioni della shell, quando usare le virgolette o meno, etc. etc.
  • Capire che senza togliere le newline ‘\n’ nei sorgenti HTML non avrei mai potuto usare grep o sed perchè sono utility che gestiscono la singola linea ( molti tag HTML sono su diverse linee ). Per non dovere imparare Awk :) , ho deciso di togliere le newline con il comando tr.

Chiaramente senza Google non avrei potuto fare niente, e in particolare questo tutorial è davvero eccezionale.

In conclusione direi che per questo tipo di problemi i tool si sono rivelati un’ottimo strumento, non credo che sarei mai riuscito a fare qualcosa del genere in C o VB, etc… D’altro canto è chiaro che non mi metterei a fare un gestionale con questi tool… :)

Handel/Liszt: Sarabanda e Ciaccona dall’opera Almira

Posted by mgutman on November 9th, 2008

Parte 1

Parte 2

Fumetti Marvel Online !

Posted by mgutman on November 5th, 2008
Ess_PP_SM_vol_2_TPB.jpg

Stamattina, quasi per caso, girovagando tra le mie 1734 notizie ancora non lette in Netvibes, ho letto che Marvel già da un pò di tempo pubblica i suoi fumetti online. La notizia mi ha subito entusiasmato, infatti da bambino leggevo questi fumetti con molta passione. Mi ricordo che me li portavo anche a tavola :) e passavo anche diversi minuti sulla singola scena, come volessi ricrearla nella mia immaginazione in ogni dettaglio.

Mi sono quindi gettato, abbandonando Outlook, le shell linux in SSH, i terminali windows, e incurante del pericolo ( dietro di me qualcuno stava lavorando ) sul sito della Marvel . L’offerta è molto interessante, anche perchè è flat, a.k.a. “all you can eat” :) . Sono 9.99 US$ al mese che scendono a 4.99 US$ se ci si abbona per un anno. Per quanto riguarda quello che è disponibile si parla di più di 5000 fumetti, con alcuni highlights come i primi 100 numeri di Spider Man, che risalgono al 1965. Solo questo varrebbe il prezzo di un mese di accesso. Per quanto riguarda la fruizione, viene fatta tramite un player flash per evitare la piaga ( ehm … ehm ) della pirateria. D’altra parte penso che questa iniziativa vada accolta con favore perchè è comunque un servizio innovativo.

Certo non è come avere tra le mani un fumetto, però ci sono anche molti vantaggi. Inoltre il player ha anche un modo di consultazione abbastanza interessante che permette di focalizzarsi su una scena alla volta. Certo è consigliabile almeno uno schermo 20″. Sul TV a 40″ sarebbe il massimo, vedrò cosa riesco a fare con il mio nuovo MacBook. Un pò un peccato che i dialoghi siano in inglese perchè i dialoghi non sono sempre immediati.

Se volete dare un’occhiata ci sono anche dei freebies settimanali.

Tomb Raider Underworld demo

Posted by mgutman on November 3rd, 2008

Ieri pomeriggio mi sono intrattenuto con Lara. E’ stato molto piacevole, e per fortuna è durato abbastanza ( :) se c’è una cosa che odio sono demo da 1 giga che durano 3 minuti  ).

La grafica è piuttosto bella, soprattutto l’ambientazione, con immense costruzioni curate nei minimi dettagli ed una natura letteralmente sfolgorante. Spesso si vedono colorati uccelli tropicali che Lara fa volare via mentre salta da una parete all’altra. Anche le animazioni di Lara sono più curate. Nel muoversi tra le rovine il suo corpo tende poi a segnarsi di polvere e graffi, ed è ancora più bella così :) .

Anche la musica ed il suono sono molto buoni. Non parliamo poi dei gridolini che Lara fa quando fa dei particolari sforzi o cade facendosi male.

Per quello che ho potuto vedere non c’è molto di nuovo nel gameplay. Puoi scrollarti di dosso gli animali che si attaccano al tuo corpo, oppure trovare per terra le sbarre da acrobazia e attaccarle alle pareti. Inoltre puoi muoverti sulle pareti aggrappandoti a dei mattoni sporgenti, o salire in altezza saltando tra due pareti ravvicinate ( in perfetto stile “Ninja Gaiden” ).

Il combattimento rimane molto simile e per me è la parte più debole della serie. O forse sono solo io una schiappa perchè non riesco mai a tenere testa agli animali.

Ma il piacere di Tomb Raider rimane quello dell’esplorazione di questi mondi perduti, scovandone tutti i loro segreti. E farlo con stile come fa Lara. Il metodo di controllo è praticamente perfetto, dopo un pò entrerete nel ritmo di Lara un’acrobazia dopo l’altra e vi sembrerà quasi di essere una ginnasta alle Olimpiadi.

Giudizio finale ( come aspettativa ): 8/10. Messo subito nella mia “wish list”. Qui sotto il gameplay trailer.

Periodo escapista

Posted by mgutman on November 3rd, 2008

Come ogni artista che si rispetti, anche io ( in quanto blogger ) ho i miei “periodi”. Diciamo che sono ora in un periodo “escapista”, e voglio postare solo di qualsiasi cosa che sia evasione dalla realtà: videogiochi, musica, pianoforte, software completamente inutile… In realtà il mio blog era partito così, poi sono stato corrotto dal quotidiano.

E quindi no a crisi economica, partiti politici, Berlusconi e Prodi, chiesa, problemi di lavoro, etc etc…

Liszt youtube “galore”

Posted by mgutman on November 3rd, 2008

Sì, lo ammetto, amo molto le espressioni anglofone, perchè trovo l’inglese sempre molto conciso ( qualità che apprezzo anche nella programmazione ). Del resto a differenza di noi latini che siamo dei chiaccheroni, gli anglosassoni sono un pò più concreti. Galore viene dall’irlandese e dallo scozzese e in italiano si potrebbe tradurre come…. boh, forse “abboffata” per usare un termine gastronomico ?

Fatto sta che liszt73 deve amare molto il grande ungherese, perchè il suo canale youtube straripa di contenuti. Dopo avere pubblicato ben 51, dico 51 video delle trascrizioni delle sinfonie di beethoven ( riporto sotto la playlist ) ci delizia ancora con Brendel e Zimerman. Mi sembra che il gusto non gli manchi.

E’ a lui che ho “rubato” i video di Brendel. Non so come ringraziarlo, spero solo che non si trovi a che fare con qualche problema di copyright, anche se in realtà il suo canale fa solo pubblicità alla grande musica e ai grandi pianisti. Molti dei video che ha postato li ho tra l’altro come CD, ma averli su youtube è veramente molto comodo.


Bolet suona la Barcarola Op.60 di Chopin

Posted by mgutman on November 1st, 2008

Bolet è un pianista che ha conosciuto il grande successo relativamente tardi. Le sue incisioni di Liszt per la Decca mi sono sempre piaciute, e ne ho sia in vinile che in CD. E questa esecuzione della Barcarola di Chopin la trovo molto bella.

Scarica come mp4

StreamDrag, e Youtube diventa un jukebox

Posted by mgutman on November 1st, 2008
logo_stilld.gif

Con StreamDrag è possibile ascoltare le sole tracce audio dei filmati presenti in Youtube. Non so voi, ma a me spesso il video distrae dall’ascolto. L’interfaccia è abbastanza minimalista, ma funzionale. E naturalmente la search delle tracce è fatta in ajax per non interrompere l’ascolto della traccia attuale. Può essere utile anche in ufficio se youtube è bloccato ma avete voglia di un bel sottofondo mentre state facendo un lavoro noioso.

Sofronitsky suona Scriabin

Posted by mgutman on October 29th, 2008

Fantasie h-moll, Op. 28

Scarica come MP4

Scriabin 12 Etudes, Op. 8

Parte 1

Scarica come MP4

Parte 2

Scarica come MP4

Parte 3

Scarica come MP4


Copyright © 2007 I like Chopin. All rights reserved.