16 December 2011

Ripensare la civiltà

Vi è mai successo che qualcosa vi colpisse, in qualche modo, aprendo una breccia, più o meno grande, nel vostro modo di vedere le cose? Vi è mai capitato di apprendere qualcosa e conseguentemente spostarvi in uno stato tipo "wow, questo cambia le cose... Non ho ancora bene inquadrato come, ma cambiano."

Ecco, mi trovo esattamente in questo stato. La differenza l'ha fatta un articolo di Wired che ho letto qualche giorno (o settimana) fa: parlava del mercato delle droghe fatto su internet.

Quell'articolo (che non ho proprio voglia di cercare e linkarvi, c'è google :P) mostrava come l'uso di TOR e di BitCoin avesse permesso di creare un vero e proprio mercato online delle droghe. La cosa strabiliante è che la sicurezza fornita da questi mezzi permetta scambio, senza possibilità di essere rintracciati. Altra cosa che mi ha sorpreso è che la merce arriva a casa con la posta. Sostanzialmente queste sono le cose che ho trovato interessanti.

Benché io sia abbastanza interessato alle droghe dal punto di vista scientifico/biologico (come funzionano? Che effetti hanno? Su cosa agiscono? et cetera) e decisamente non interessato alle droghe dal punto di vista salutistico (per la maggiore fanno male, e non ho certo fretta di accorciare la mia permanenza in questo mondo), rimango piuttosto affascinato dal punto di vista sociologico (che ruolo hanno? Come si muove la gente e il mercato della droga?).

Ora vengo al punto: come tutti sanno, la circolazione delle droghe è una cosa a cui la maggioranza dei governi fa una certa opposizione (almeno a parole). Non so quale sia il motivo di fondo per farlo, ma non è questo il punto (nè il momento in cui discuterne).

La cosa che trovo sensazionale è che si sia arrivati al punto in cui la tecnologia permetta, piuttosto liberamente, di ottenere una (discutibile) libertà che precedentemente veniva negata tramite l'autorità di controllo. Prima dovevi andare per strada e cercare un pusher (o avevi quello di fiducia, immagino, come il macellaio o il panettiere). Adesso invece non serve incontrare nessuno, fai qualche click, mandi qualche soldo virtuale (ma comunque di valore) e ti arriva la roba a casa senza troppi disturbi (da quello che sembra).

Non so che effetto fa a voi questa cosa. A me lascia sconcertato. Il mercato della droga è sempre stato sostanzialmente grosso e voluminoso in termini di denaro trasferito. Per questo motivo, è sempre stato qualcosa di altamente pericoloso e difficilmente arrestabile. Come tale, è sempre stato in grado di cercare vie, sempre migliori, per superare "l'ostacolo legge" e le moralità discutibili che però regnano le nazioni.

A me sembra di capire che questo mercatino del drogato sia ormai una realtà relativamente consolidata: se wired ne ha parlato, vuol dire che non è una cosa propriamente piccola e invisibile. E se se ne può parlare senza problemi, vuol dire che le tecnologie di base sono sufficientemente solide per garantire l'anonimato con una certa sicurezza per commercianti e acquirenti.

Da questo spunto mi saltano fuori migliaia di domande imbarazzanti:
siamo arrivati al punto in cui la tecnologia può garantirci la sicurezza di avere delle libertà fondamentali, come quella di parola e di comunicazione (o di scambio, in questo caso)? Oppure è solo una impressione e la tecnologia non può permetterci queste cose?

Purtroppo il diritto alla vita (e avrei molto da discutere su questo) non ce lo garantisce ancora, ma per altre cose minori - ma comunque importanti - ormai è palese. Non solo questo episodio è spunto per questi pensieri... Anche altre iniziative, come #opencamera su twitter, in cui i parlamentari usano questi sistemi di comunicazione di massa, iperaccessibili e iperinterattivi (completamente diversi dalle classiche realtà televisiva ed editoriale), comunicano liberamente quello che succede alla gente interessata. E poi le rivolte in nord Africa e medio oriente: esse sono state permesse anche grazie alla circolazione libera di informazioni, permessa esclusivamente grazie alla tecnologia, sempre più veloce, focalizzata, sicura e soprattutto diffusa.

Le domande successive piovono: che ruolo hanno i governi in tutto questo? Possono esistere ancora entità di controllo e legislazione, in questo ambiente? E se sì, come? Che senso hanno?

A me sembra che la natura di tutte queste cose (governi, potere, civiltà, libertà e diritti) debba essere ripensata molto profondamente. Ho paura che non facendolo, ci si sposti sempre più verso una pessima situazione in cui non vi è un passaggio di testimone tra il vecchio e il nuovo, ma si vada invece in una situazione in cui il vecchio cercherà di proteggere se stesso (fallendo inevitabilmente) e il nuovo si troverà a strappare brutalmente dalle sue mani il controllo delle cose. Questo chiaramente non sarà vantaggioso per entrambe le parti.

Non voglio alzare troppi quesiti (che dovrei spiegare e insomma poi diventa un post kilometrico), ma uno in particolare lo trovo interessante...
Se è vero che bisogna ripensare al potere e al controllo (e dunque, alle libertà), è inevitabile pensare a ciò che è attualmente sinonimo di potere: il denaro. Assieme a tutte queste piccole rivoluzioni sociali e tecnologiche, il denaro è stato centro, qui e là, di timidi tentativi di cambiamento. Si pensi ad esempio al social lending - in cui si cerca di escludere la banca dal meccanismo di prestito - o, ancora prima, dai meccanismi di commercio elettronico che ci hanno portato nel mondo di oggi.

Ora, l'ultima rivoluzione, su cui ero piuttosto dubbioso, ma che invece - con mia gioia - sembra funzionare piuttosto bene, è BitCoin.

È chiaro che per togliere definitivamente il potere ai governi e ai "forti" in generale (banche, assicurazioni, compagnie di trading, etc), bisogna liberare anche la moneta. È possibile che BitCoin sia la casellina mancante in questo enorme puzzle? E se non è sufficiente BitCoin, cosa manca dal punto di vista economico per garantire libertà alle persone? Cosa, dal punto di vista economico, manca "ai molti" per fare effettivamente la differenza e "scalzare i pochi (ma forti)"?

Sebbene mi piacca pormi domande di questo tipo, non è realmente mio interesse cercare una risposta e altre cose (che mi procurano maggiore felicità) occupano la maggioranza del mio tempo :D Quindi mi accontenterò, come al solito, di vedere se a distanza di anni le cose andranno come pensavo. Chissà se sono l'unico fesso che pensa a queste cose, o se c'è altra gente (molta? poca?) che si sta accorgendo di queste cose. Mi divertirebbe leggere qualche opinione in proposito.


Stay --sync

17 October 2011

GNOME Shell Extensions

Another reminder to self, but can be useful to others.
Some resources I found about custom GNOME Shell Extensions.
  • http://blogs.openshine.com/cgtapia/2011/05/16/writing-extensions-to-the-new-gnome-shell/
  • http://blog.fpmurphy.com/2011/04/gnome-3-shell-extensions.html
  • http://blog.fpmurphy.com/2011/05/more-gnome-shell-customization.html
  • http://joneslee85.wordpress.com/2010/02/28/howto-customize-gnome-shell-theme/
  • http://www.slideshare.net/yurenju/step-by-step-to-write-a-gnomeshell-extension
If you want to play a bit with the shell, you can use the Looking Glass in interactive mode:
  • Press Alt+F2 and insert "lg".
I really like GNOME Shell. It's not really fast actually and 3.0.x is unstable. But I'm on F15 and waiting to see how will be in F16.

Nonetheless, I'm satisfied with it. Using it is a pleasure even if at the beginning it made me very nervous.
So, since it's like the 100th time I said to myself "I've to customize it", today I started.

Stay --sync

15 October 2011

Teaching: You're Doin' It Right

Self-note, or note for whoever wants to teach (or is a teacher).

I'm taking the ML-Classes by Andrew Ng + team from Stanford University.
I'm also taking the AI-Classes by Norvig & Thun... But the experience is totally pretty different and actually I'm loving the Machine Learning course much more than the other.

So, I'm resuming here what really love about these lessons, which I personally consider to be very-high quality (even if there are few glitches, but are negligible).
  1. Video lessons can be downloaded. In AI course this is not possible, since they use youtube as platform. This is important, because determine when and how people can watch these videos. Also, videos are short (from 5 to 15 minutes, rarely less than 20), which improve usage over the classic "whole lesson" of 1+ hours.
  2. Explanations are precise and they go straight to the point. I feel it's not the same with the AI class, where are a bit too slow and fuzzy.
  3. Digitally-annotated presentations is a great way of explaining: teacher prepares the slides and, using a tablet device, writes things on screen using multiple colours. This improves readability and speed. In AI classes, paper and marker is used, and it's not as good as the first. Khan academy also uses the former technique and, I think, it's the best.
  4. FLOSS tools are used, Octave in this case, which is pretty nice. Tools are also introduced properly, and this is very important. I followed some courses at university were we used Matlab, but the explanation has been done "en passant" and the using experience was awful.
  5. Validation tools are pervasive: doing quizzes and tests often is a very good strategy to make students learn quickly. This is done both in ML and IA classes, luckily, but I appreciated also the programming exercises validation in ML class: *from octave*, a function is made available to send your exercises to server, and you get immediate feedback in an interactive feedback. This is great and actually the first time I see something like this. Very clever idea.
In general, in the ML class I see a well-developed framework for e-learning which could (and should) be replicated and used often.

If you organize courses, are a teacher or you're interested in giving students a good e-learning framework, take a look at how ML classes are done.

Stay --sync

28 September 2011

Inizia il secondo anno. Di tre.

Alla triennale non mi sono impegnato particolarmente. Questo si sa, ci ho messo 5 interi anni accademici a finire la triennale.

Alla specialistica, invece, volevo impegnarmi seriamente, ma a quanto pare il successo accademico è una cosa che mi è negata anche se lo voglio ardentemente.

Tra 4 giorni inizia il nuovo anno accademico. Lunedì 3 Ottobre inizierò i nuovi corsi. Sentite che bella storia (sì, questo è uno sfogo, ma anche un avviso).

Al primo anno si scelgono i corsi dell'anno successivo. Quindi il primo anno ho scelto 8 corsi specializzanti che dovrei frequentare quest'anno.
Fondamentalmente ho scelto i corsi che mi interessavano, partendo dagli algoritmi e arrivando fino al soft computing. Quindi ho scelto questi (sulla fiducia, tra l'altro, perché la maggior parte dei programmi dei corsi non era disponibile al momento della scelta):
  1. Intelligenza Artificiale, in cui si studiano varie tecniche usate nell'IA, una sorta di infarinatura generale. Questo corso è tenuto (se non lo cambiano) da un'ottimo professore.
  2. Laboratorio di Modellistica e Simulazione, non so come sia il corso, ma il nome mi ispirava e quindi l'ho messo nel piano.
  3. Sistemi Complessi: Modelli e Applicazioni, che suppongo tratti lo studio di sistemi complessi dal punto di vista teorico e pratico.
  4. Soft Computing, che mostra le tecniche di soft computing. Anche questo, come IA, lo conobbi alla triennale e so che anche qui il docente è estremamente bravo e il corso è impegnativo.
  5. Algoritmi su testi, che tratta, a quanto pare, gli algoritmi su testi. Non c'entra molto col resto, ma mi piacciono gli algoritmi.
  6. Gestione della Conoscenza, che suppongo spieghi come viene gestita la conoscenza a livello di modelli, strutture e a livello logico.
  7. Trattamento formale dell'incertezza, offero fuzzy logic.
  8. Progettazione Logica Digitale, ovvero si studiano gli FPGA. Non c'entra molto, anche questo, ma l'argomento mi interessava.
Ora, il corso #8 lo faccio questo primo semestre.
Gli altri corsi non sono in questo semestre. Questo fa pensare immediatamente che dovrò fare 7 corsi in un solo semestre. Questo implica che, molto probabilmente, ci saranno sovrapposizioni e difficoltà varie (pensate che bello dare circa 1.17 esami al mese, con uno span effettivo degli esami di 2 mesi e 4 mesi di corsi).

Quindi 7 corsi in 6 mesi. Questa è la soluzione ottima allo stato attuale delle cose.

La realtà è che 4 esami su 8 non sono previsti nel manifesto dell'anno accademico. In altre parole, me ne han fatti scegliere 8, li hanno accettati, e poi me ne han tolti 4. Guarda caso, 3 dei 4 più fighi, i numeri #2, #4, #5 e #7.

Inoltre, come se questo non bastasse, il corso #3 sui sistemi complessi è stato spostato al primo anno e gli hanno anche cambiato il programma. Quindi può essere che io non possa dare nemmeno questo.

Caso peggiore: 3 mantenuti, 5 cancellati.

Implicazioni a breve termine: io settimana prossima inizierò a seguire tutti i corsi possibili (tra l'altro, Text Mining, che è interessante ed è tenuto da un professore bravo, mi si sovrappone con #8) sperando che ce ne sia qualcuno di interessante.

Chiaramente, per stare tranquillo, dovrò studiare per 4/5 esami e darli tutti e prendere 30 in tutti perché non so, poi, quali finiranno nel nuovo piano di studi.

Ah ecco, e come se non bastasse, il professore di Soft Computing è andato all'estero e credo che ci rimarrà per un paio d'anni. Io puntavo a fare la tesi con lui, magari sugli algoritmi genetici che sono il suo cavallo di battaglia.

Che culo, eh?
Morali:
  1. evitate la Bicocca, almeno finché non imparano ad organizzarsi (dato che tutti mi dicono che è organizzata male, anche nelle altre facoltà). I professori, comunque, sono bravi... Quando non se ne vanno.
  2. finirò in 3 anni anziché 2, ritardando ulterioremente tutti i miei programmi di studio all'estero.
  3. date retta al vostro correlatore se vi dice "cambia università per la specialistica."

Stay --sync

31 August 2011

Alla fine l'ho buttato via...

Nella mia opera gargantuesca (che davvero pochi conoscono, e che mi ostino a non rivelare nei dettagli salienti :D) le cose procedono.

Come detto nel post relativo, era tutto da buttare... Praticamente s'è rivelato vero. Ho abolito QGraphicsView dal mio programma, perché banalmente detestavo il dover avere *due* modelli dello spazio: uno mio e uno di Qt...
E no, non posso usare quello di Qt al posto del mio, altrimenti si frigge tutto il senso della separazione delle classi...
E no, bindare i due modelli è semplicemente cretino...
E sì, dovrò ri-fare un bel po' di cose. Certamente, c'è qualcosa che mi tedia.

Ad esempio, eviterei volentieri di rifare il BSP, ma siccome ho un modello spaziale separato, mi servirà non solo per gli scopi per cui era già usato nel Graphics Framework, ma anche per le mie nuove strabilianti funzionalità (come, ad esempio, evidenziare un nodo. Eccitante, non è vero? :D)

Ho una nota triste: il rendering di QPainter su i widget OpenGL fa pena. Non è minimamente paragonabile, come qualità, a quello fatto sulle superfici normali... In altre parole: l'anti-aliasing è orribile, perché usa il supersampling (multisampling?), come di solito si fa in OpenGL.

Intanto il progetto cresce bene. Sono arrivato (credo ieri) alle 5000 righe di codice (senza commenti... *aehm* ma devo dire che è ben organizzato quindi siamo abbastanza nel "self-explanatory" *coff coff*) e questa sera ho reso l'applicazione scriptabile :) (QtScript, cioè ECMAScript-262).

Niente, ero soddisfatto e mi andava di comunicarvelo :D

Intanto, gli esami incombono e non so quando avrete ancora mie notizie.
Stay --sync

09 August 2011

È tutto da rifare!!

Non avevo poi sbagliato dicendo che era (quasi) tutto da buttare. Sto riscrivendo il software in questione, passando da un prototipo (tanto utile quando implementato male :D) ad una implementazione definitiva fatta con tutti i crismi. Sono circa 7 giorni che la scrivo e rispetto al prototipo ho sostanzialmente triplicato il numero delle classi... E sto facendo sostanzialmente "scaffolding" (o qualcosa di simile), ovvero sto implementando le feature prioritarie da un punto di vista strutturale... Senza contare che questa volta sto usando interfacce ed unit test XD

Questa architettura mi sta dando soddisfazioni e...
Niente :D Non ho poi molto da dire, ma avevo voglia di scrivere sul blog.

Ah ecco, sono tornato singol. Casualmente, anche questo c'entra in qualche modo col titolo.
Stay --sync

11 June 2011

C'è una cospirazione...

Sì, avete capito bene. Cercavo attentamente di tenermi fuori dalle ridicole teorie cospirazioniste, come le scie chimiche, controlli mentali dei governi, etc... Cercavo di tenermi fuori, fino ad oggi.

Oggi la cospirazione è saltata fuori, chiara ed evidente ai miei occhi. Mi sono chiesto "perché?", me lo sono chiesto molte volte, e questa non può che essere l'unica risposta plausibile.

C'è una cospirazione in atto volta a stravolgere l'intelligenza e la produttività umana.
C'è una cospirazione votata alla produzione di gadget elettronici schifosi.

Ci vorrebbe così poco per creare qualcosa di veramente utile, ma chiaramente si stanno facendo abbondanti sforzi per non crearla e tenercela lontana.

  • C'era iLiad della iRex. L'azienda è fallita. Ne ho visto solo uno, dal vivo, nella mia vita, e il proprietario è tutt'oggi soddisfatto. Quello era sulla strada giusta, ma le grosse aziende cospiratrici l'hanno chiaramente portata al fallimento.
  • C'è il magnifico Kindle. Meraviglioso, ma inutile per scrivere.
  • È arrivato il tanto osannato iPad. Fuffa impacchettata bene. Inutile per scrivere.
  • Sono seguiti a ruota una serie di tablet. Oggi ne ho provati alcuni: pessimi. Meno fuffa dell'iPad, ma inutili anche loro per scrivere.
  • Eee note: schermo LCD in bianco e nero (sì, come i PDA del 1890). Ci si può scrivere, ma si vede peggio di tutti gli altri messi assieme.
  • Mille altri prodotti che sulla carta sembrano belli e in realtà sono sempre e comunque carenti di qualcosa.
Ma che cazzo. Ma è possibile? Come mi son sentito felice a vedere e provare, finalmente un Asus EEE Note EA800. Sì, ok, alla penna bisogna abituarsi... È un po' imprecisa... Ok, ma è finalmente un prodotto completo.

E invece no. Ha uno schermo pessimo. Capite? Semplicemente pessimo. Che senso ha mettere uno schermo schifoso su un prodotto buono? Quando lo schermo, chiaramente, è il 70% dell'intero dispositivo?

Ma che cazzo.
Deve esserci una cospirazione. È senz'altro così. Non possono essere TUTTI così idioti.


Stay --sync

02 June 2011

Incremental backups with GNU tar, cron and dropbox.

I just found a great feature of GNU tar: the -g flag.
The feature is pretty cool, because it allows you to create differential archives based on modified files. Those archives are regular tar files, so you can just unpack them and have the differences. It's not a binary diff of files, which is a pretty different thing.

When you create an archive of a directory and the log is not present, the archive will be a regular tar archive, the same you would create with "tar cvzf arch.tgz somedir".
The cool thing is that if the log is present, then just a differential archive will be created, containing only the things changed since the last log modification.

This is pretty good for network bandwidth, so I just set up a minimal backup system based on differential archives that works with dropbox.

The script

#!/bin/sh
# By Alessandro "AkiRoss" Re
TODAY=$(date +%Y%m%d)
TIME=$(date +%H%M)
BKDIR=/where/backups/are/stored
SRCDIR=/dir/to/backup
DBOXDIR=/where/is/Dropbox

TARGETFILE="$BKDIR/backup_$TODAY.$TIME.tar.gz"
LOGFILE="$BKDIR/backup_$TODAY.snar"
tar --create --listed-incremental $LOGFILE --gzip --verbose --file $TARGETFILE $SRCDIR
SAFEDIR="$DBOXDIR/$TODAY"
mkdir -p $SAFEDIR
cp $TARGETFILE $SAFEDIR
cp $LOGFILE $SAFEDIR



How it works

This script is made to be executed hourly (but it can be executed every minute and should work). I placed it in /etc/cron.hourly/.

It is executed every hour: the current day in format YYYYMMDD is registered and hour in format HHMM.
Some parameters are required: BKDIR directory where your backups will be saved, SRCDIR the directory you want to backup, DBOXDIR is a Dropbox directory, but I guess it could be anything else: from a NFS mount to a external backup device.

The archive is created in the form "backup_YYYYMMDD.HHMM.tar.gz" and the log file is "backup_YYYYMMDD.snar". Then the archive is created, and here's the neat part: being executed every hour, the log file is the same throughout the whole day, because hours and minutes are not registered in the name (which will change the next day). The archive, on the other hand, do register HHMM in the name, allowing the creation of a new differential archive every time the script is called.
So, a "pattern matching" automatically happens in the file names and each archive, full or incremental, will be related to a certain log.

After this, files are copied to dropbox, which is happy because diff files are usually small.

The cool thing in this script is that this logic can be adapted for almost any time interval (say YYYYMMDDHHMM in this case) as long as a sub-string of such interval can be a valid log timestamp.
For example, if you want to have a full backup every month and incremental backups every day, you just change archive name to YYYYMMDD and log name to YYYYMM, having this script in cron.daily will do.

You can also do weekly full backups with %U or %V. See man date.

Hope you like it!
Stay --sync

21 May 2011

BitCoin

Oggi mi e' arrivata una mail da un mio amico, dadokkio, che mi chiedeva un'opinione su bitcoin.

Per chi non ne avesse mai sentito parlare (come me fino ad 1 ora fa):

http://www.weusecoins.com
http://launch.is/blog/l019-bitcoin-p2p-currency-the-most-dangerous-project-weve-ev.html
https://en.bitcoin.it/wiki/Main_Page

La risposta che ho dato alla mail era lunga, ma qui saro' molto breve.
Io sono un fan dell'economia pulita, ovvero lo 0.00001% di tutta l'economia mondiale, cioe' quella fatta sulle cose concrete. Bitcoin non mi sembra affatto pulita.
Mi son posto una serie di domande - magari stupide, magari no.

  • Perche' i soldi sono generati da un software?
  • E' questa la base fondante del sistema economico bitcoin?
  • Qual e' il riscronto *fisico* del mining?
  • E' l'ennesima moneta basata sul niente (come gli euro o i dollari)?
  • I soldi nel sistema nascono tutti da li'?
  • Perche' le transazioni hanno un costo?
  • Chi si prende i soldi per le transazioni?
  • Perche' e' nato tutto questo?
  • Qual e' la necessita' di creare un mercato monetario alternativo?
  • A parte per agevolare le attivita' fraudolente, qual e' lo scopo di avere soldi digitali anonimi?
  • Se sul computer ho dei soldi, devo aspettarmi che me lo fottano/clonino quando lo lascio incustodito all'universita'?
  • E' davvero contrastabile dai governi?
  • E anche se non venisse contrastato, cosa vi fa pensare che non venga regolato e/o controllato da "banche digitali" esattamente come quelle esistenti?
  • A chi va il potere?
  • A chi ne viene in tasca?
... E molte altre domande, ma per ora mi fermo.


Non sono affatto esperto di economia, quindi chiedo le vostre opinioni.

Il mio sistema economico ideale ce l'ho in testa da qualche anno ormai, e a fronte di esso tutti gli altri mi fanno cagare. Non voglio scartare a priori bitcoin, ma da quello che ho letto, visto e sentito fin ora, non ha le premesse per essere un buon (i.e. genuino) sistema economico.

Si attendono smentite e/o risposte :D

Stay --sync

13 May 2011

E' tutto da buttare!!

Non e' vero :D

Diciamo che il codice probabilmente lo butto via, non avevo scritto neanche 1500 righe di codice, ma sono state un'altra importante lezione (e questa non e' da buttare). La lezione principale e' stata che devo ricordarmi di separare bene, molto bene, i ruoli delle classi. La seconda lezione e' stata che Qt e' figo, ma occhio a non farsi trascinare troppo: e' bello vedere i framework che hanno e vedere che si applicano in fretta... Ma alcuni di essi sono stati pensati per scopi specifici e non e' tanto bello quando devi fare altro.

Detto per inciso: il Graphics View Framework e' bello e comodo, ma non mi piace com'e' gestito: c'e' una scena che serve a gestire gli oggetti, diciamo lo spazio degli oggetti, ma sostanzialmente si occupa dell'ordinamento e della ricerca/inserimento (BSP). Assolutamente non si occupa di rendering.

Di rendering si occupano la vista (chiaramente) e i singoli oggetti. Ma gli oggetti fanno parte della scena. MEH: perche' da un lato devo avere tutto quanto e' logico, da un lato avere tutto quanto e' visuale, ma negli oggetti non c'e' questa separazione? Lo trovo un po' scomodo: o e' tutto in uno, o non sono due cose separate. Forse mi sbaglio e forse (probabilmente) il GVF e' un'ottima implementazione del MVP, ma quando si introduce l'animazione non mi piace piu' tanto che le due cose siano cosi' coincidenti, e non e' tanto elegante modificare la struttura per tenere le cose separate.

Chiaramente, e' fantastico il fatto che ci siano animazioni gia' fatte. E' fantastico che bastino poche righe per disegnare un testo, averne il bounding box, di poterlo spostare e trasformare cosi' facilmente... Tutto bello.

Ma, chiaramente, piu' cose sono gia' fatte, meno ci si adatta alle necessita' particolari.

Anche la gestione degli stati e' bella e gia' fatta in Qt, ma... Cazzarola, e' una banale macchina a stati!! E' perfetta se la tua UI e' quella a cui pensi tu, ma come fai se il comportamento o i requisiti dovessero evolvere? Come fai se ci sono incognite e moduli da riutilizzare? Il fatto che poi tutto questo sia gestito con Signals&Slots e' bello perche' ti permette di separare il comportamento dagli stati, ma gli stati diventano i regolatori del comportamento e quindi, chiaramente, si perde in flessibilita'.

*Sigh*

Mi sa che questa sera la passero' a fare una analisi seria del progetto.

Nel mentre chiedo se qualcuno conosce qualche libreria portabile che permetta di disegnare facilmente ed efficientemente in vettoriale 2D? Tipo... Chesso', un'implementazione di OpenVG in SDL?
Io sarei felicissimo di farmi tutta la struttura delle classi secondo la mia necessita', ma rifarmi un intero stack di disegno vettoriale NO.

Stay --sync

EDIT: Nah, continuero' con Qt. Ci son troppe cose comode che non devo riscrivere :D