Feeds:
Posts
Comments

Una prestazione maiuscola della squadra ha permesso a Siv di passare il turno, seppur negli ultimi minuti, della Laurea Magistrale e di avviarsi verso il Dottorato di Ricerca; partita in generale bella, con gli ospiti subito in vantaggio, che una grande reazione dei padroni di casa ha reso tuttavia inutile. Ma andiamo con ordine.

Siv si presenta all’incontro dopo una lunga preparazione, durata l’interno mese precedente, ma forse proprio l’eccessiva pressione dell’impegno fa sì che nei primi minuti sia un po’ sulle gambe, e la squadra avversaria non resta a guardare e colpisce a freddo, andando sullo 0 – 1 per gli ospiti. Siv tuttavia non si lascia sorprendere e sfodera una buona reazione allo svantaggio, riuscendo ad andare negli spogliatoi sul pari dopo una rocambolesca azione da gol.

Nella ripresa, nessun cambio nelle due formazioni, tuttavia Sessione d’esami appare un po’ distratta, forse a causa del pareggio subìto immediatamente prima del riposo, e si fa colpire due volte, con Siv che si porta quindi sul 3 – 1, in entrambe le occasioni con palle-gol limpide e senza responsabilità da parte del portiere avversario.

Negli ultimi minuti, la partita diventa tesa: Siv deve necessariamente segnare 4 gol senza subirne più di 2, e sul 3 – 1 lo spettro dei supplementari si fa concreto di minuto in minuto; in pieno recupero, l’arbitro assegna un calcio di rigore a Siv, dopo un netto fallo di Sessione d’esami, e lo specialista della squadra trasforma la massima punizione, spiazzando completamente il portiere avversario.

Non c’è più tempo per altre azioni, e la partita si conclude sul 4 – 1 per Siv, che riesce così ad agguantare il passaggio del turno senza dover affrontare i supplementari.

Piergiorgio Odifreddi

[…] un reverendo, di cui non vale nemmeno la pena di ricordare il nome, che negli Stati Uniti minacciava di bruciare il Corano l’11 settembre. Un atto veramente idiota, visto che non si vede cosa un falò privato di fogli stampati potrebbe o dovrebbe significare, in un mondo sensato.

[P. Odifreddi – Se fossimo tutti atei]

Siv – Nemesis

“Non finisce qui”, disse il comandante.
Quindi girò sui tacchi e si diresse verso il tunnel. Quando si trovò vicinissimo, si voltò un’ultima volta: “Chi sei?”
“Un amico…”
Quindi Barker entrò, ed il tunnel azzurro si richiuse dietro di lui.

Siv – Nemesis

“Allora, stavamo pattugliando quando improvvisamente vediamo passare un esercito! Un intero esercito!!!”
“Quanti?”
“Un po’ meno di noi, e noi siamo un esercito!”
“Giusto.”

ImageCopier 1.3.1.7

ImageCopier 1.3.1.7

Dopo mesi, per non dire anni, in cui non mi ero più dedicato al mio piccolo programmino in C#, ecco un aggiornamento di ImageCopier, che tocca la versione 1.3.1.7.

ImageCopier è una piccola utility che permette la copia di file da un percorso ramificato ad un percorso unico: vi è mai capitato di tornare dalle vacanze e voler mettere insieme tutte le foto che avete, e che tendenzialmente avrete posto in diverse sottocartelle (una per ciascuna scheda di memoria)? Ebbene, da ImageCopier è sufficiente che selezioniate la cartella padre delle sottocartelle di cui sopra come input, una cartella vuota come output, ed il programma copierà i file dalla prima alla seconda, in ordine strettamente alfabetico e numerando correttamente in sequenza i file ivi contenuti.

Ok, ovviamente se usate (come me) un programma di gestione di foto, non ve ne fate assolutamente niente; ma se ordinate voi a mano le vostre immagini sull’hard disk, potrebbe tornarvi utile.

Di fatto, tutta questa spiegazione è stata una scusa per poter giocare un po’ con C#, che potrei definire il primo linguaggio di programmazione serio di cui io abbia mai avuto un libro (e parliamo del 2003, e non vogliamo certo considerare Pascal e BASIC come seri, no?), e con il quale non avevo mai avuto occasione di sperimentare. Il programma naturalmente è rigorosamente cross-platform, e solo una riga di codice deve essere modificata affinchè l’esecuzione sotto Mono avvenga senza problemi (ed aggiungo: solo perchè non ho ancora capito come far andare quella riga sotto Mono senza che lanci una runtime exception). In ogni caso, ecco l’installer per Windows, creato con Nullsoft Installer, ed il consueto archivio di sorgenti per Linux: per il primo, le dipendenze (ovvero il runtime di .NET >= 2.0) vengono installate automaticamente, per il secondo dovete assicurarvi di avere installato il compilatore e le librerie base di Mono.

Rispetto alla versione precedente, ho reso l’utility vagamente più furba, ovvero ora la parte di copia viene eseguita in un thread in background, con il progresso visualizzato correttamente nell’UI; c’è anche un’altra modifica che vorrei fare prossimamente, vale a dire l’ordinamento dei file secondo la data riportata dai metadati EXIF, invece che secondo l’ordine alfabetico; vedremo se ce ne sarà il tempo nei prossimi giorni.

Tra parentesi: avete notato che ora i file .exe di Mono possono essere eseguiti da console direttamente, senza dover specificare l’interprete mono?

Nemesis video

Ho appena caricato su Youtube il video di introduzione a Nemesis, una sorta di racconto che avevo scritto negli anni del liceo (e che custodisco gelosamente in un remoto angolo del mio hard disk); di fatto, si tratta del mio primissimo montaggio audio/video, ed infatti non è certo un’opera d’arte, quantomeno come sincronizzazione tra gli eventi audio e quelli video veri e propri (salvo uno, ma sicuramente è stato un caso).

Anyway:

  • la traccia audio non saprei dire che titolo aveva, ricordo solo che era in qualche modo correlata con Matrix (o così la spacciavano), ma anche questo mi ha sempre lasciato dei dubbi, dato che avevo la colonna sonora di quel film e questa canzone non ne faceva minimamente parte;
  • le tracce video sono prese da: l’introduzione del (bellissimo!) videogioco Crimson skies; un filmato sulla battaglia contro i Cardassiani, per la precisione quella in cui viene distrutta la U.S.S. Defiant, da Star Trek Deep Space Nine; il trailer del MMORPG Legend of Mir 2; un trailer connubio tra Need For Speed Porsche e Fuori in 60 secondi. Di fatto, l’idea era che ciascun video riprendeva un’ambientazione del racconto (ma, ripeto, dovrete strappare il manoscritto dalle mie fredde dita perchè ve lo faccia mai leggere);
  • le scritte le avevo fatte con un programma che creava animazioni in 3D (il rendering durava qualche minuto sul buon vecchio PII 400 Mhz), di cui non ricordo minimamente il nome, che avevano dato a più riprese nei CD di Win Magazine (eh sì, ero windowsiano convinto all’epoca!).

Insomma, l’ho caricato online affinchè rimanga come memoria storica, per quanto violi un festival di copyright (ma, d’altronde, non è mai stato pubblicato prima ed anche ora non credo sarà visto da più di 3 persone).

HP DeskJet 710C

HP DeskJet 710C

Foto ricordo della gloriosa HP, che ci ha reso più di 10 anni di onorato servizio e che abbiamo pensionato due giorni fa: quante cose stampate con questo oggetto in tanti anni!

Le minchiate uscite alle superiori sono state un’enormità, come ad esempio il Libro delle Ombre di Streghe, o le mappe dei livelli di Tomb Raider III fatte da TGM (ti ricordi, Matt?), e da lì ad arrivare alle dispense dell’università. Un po’ di tristezza c’è, anche se non credo comunque che la butteremo (metti che succeda qualcosa al successore?). Faccio notare, comunque, come non abbia mai dato alcun problema, e sia stata usata ininterrottamente senza mai mostrare la propria età.

Voglio proprio vedere se la HP che ho comprato l’anno scorso per il mio appartamento a Milano si rivelerà analoga…

Sei mesi di Matlab

Ho passato i primi cinque anni di università a stare il più alla larga possibile da Matlab, per niente entusiasta di imparare un linguaggio di programmazione di matematica discreta, io che venivo da cinque anni passati al Liceo usando Derive (il miglior programma di matematica continua (e non solo, peraltro) mai esistito, se volete il mio parere); e devo ammettere che questo piano è stato un successo: passati con nonchalance gli pseudo-laboratori dei corsi di matematica della triennale, poi non se ne è più sentito parlare. Fino all’anno scorso.

Il corso di “Analisi e sintesi di immagini” prevedeva, infatti, un progetto relativo ai contenuti, e per allora io avevo sviluppato una certa voglia di immergermi in questo linguaggio/piattaforma/IDE, non so se per tutte le pubblicità “Do you speak Matlab” in quarta di copertina tutti i mesi su Spectrum; il progetto che ho scelto (e di cui parlerò quando lo avrò consegnato, non prima) peraltro mi permetteva di scegliere l’ambiente ed il linguaggio che volevo, ma dato che avevo già intravisto le potenzialità delle funzioni di analisi delle immagini di Matlab stesso, mi sono rivolto direttamente ad esso, ed ora, dopo circa sei mesi di lavoro (non continuo, naturalmente!), posso dare un primo giudizio sull’andazzo generale.

L’ambiente

L’IDE di sviluppo è sicuramente interessante, e la quantità di librerie usabili piuttosto alta e di qualità, e lo posso dire pur avendo solo la Student Edition + NN tools; le uniche due pecche riscontrate sono l’editor, che non riapre i file che aveva aperti l’ultima volta (ma può essere che io non abbia visto un’opzione che faccia al caso mio), ed il fatto che per alcune operazioni, o a fronte di qualche problema, non sia possibile bloccare l’esecuzione corrente del codice, rendendo necessario in un paio di occasioni un sonoro kill del processo.

Il linguaggio

Sul linguaggio si pecca un po’: alcune funzioni non sono di così immediata comprensione, e mi rendo conto che in alcuni casi sia più che altro dovuto al fatto che non si è abituati a lavorare sempre e comunque con matrici; in altri casi, alcuni comportamenti sono veramente assurdi (length restituisce 2 sia a fronte di [a b] che [a; b], e non è così immediato pensare che size ha un secondo parametro per indicare la dimensione: un bel metodo rows, per esempio, avrebbe fatto comodo), oltre al fatto che qualche metodo di list comprehension sarebbe stato utile. Il vero problema in questo caso (e parlo per esperienza, avendo cercato di replicare la libreria lists di Erlang in Matlab) è che le funzioni lambda sono limitate ad un solo statement, cosa veramente incredibile.

Si sente anche (parecchio!) la mancanza di un contenitore tipo ArrayList, ovvero in cui si possa fare inserimento/sostituzione di elementi ad accesso casuale: certo, diranno gli utenti di Matlab, ci sono le celle per questo, ma decisamente siamo anni luce indietro, dato che hanno due metodi utili e manca il resto della libreria adatta.

La sintassi delle classi non è male, è un po’ un incrocio tra Python (bisogna inserire self ad ogni metodo, e non sono richieste parentesi!) e C++ (suddivisione tra parametri, metodi pubblici, metodi privati…); certo, bisogna abituarsi a creare gli oggetti senza new, ma di nuovo Python si comporta tale e quale. In compenso, la necessità nella definizione di funzioni di avere una variabile di ritorno da assegnare è veramente stupida: ma return non ha insegnato nulla?

Giudizio finale

Direi che il tutto si merita un bell’8, anche se ogni tanto alcune idiosincrasie (ad esempio i complaints perchè si è modificato il codice di una classe ed, a detta sua, esistono ancora oggetti vecchi non eliminati (da eliminare con clear, secondo lui, anche se ciò si rivela inutile)) rendono la vita decisamente difficile.

Una breve peregrinazione di ieri sera, alla ricerca di un buon effetto da usare per l’intro di “Boulevard of broken dreams” dei Green Day, mi ha portato a scoprire un nuovo effetto di Rakarrack (dopo aver inutilmente giocato con echo e delay): l’optical tremolo, un emulatore dell’effetto tremolo, che regala esattamente il tipo di suono ricercato (aggiungendo anche un wah automatico, anche se purtroppo non si sente molto nel risultato finale).

Optical tremolo

Optical tremolo

Ecco dunque le impostazioni di partenza, ed ecco una registrazione del risultato finale (n.b.: la registrazione è stata fatta al volo, senza particolare editing, dunque la qualità può non essere eccelsa; l’ho registrata giusto per dare un’idea di quale può essere il risultato finale): intro blvd.

KDE SC 4.5

KDE SC 4.5

KDE SC 4.5