On Tue, 2010-05-25 at 23:27 +0200, Andrea Gasparini wrote: 
> Come ti ho già scritto, non ho ben chiaro cosa intendi per use-case.
> Ok, sono d'accordo con tutto quelllo che avete scritto, ma per 'use-case' 
> intendo qualcosa di un po' piu' concreto.
> Se vogliamo partire da qui pensiamo a casi più specifici possibili, tipo:
> « Andrea (nome a caso:P) vuole fare una presentazione, prende il fighissimo 
> programmello A4, e ha bisogno di fare in fretta, senza pensare a tutto.
> Butta giù le idee principali: "Mele, Pere e Banane", poi passa a dettagliare: 
> ha bisogno di inserire la ricetta per lo strudel di mele, metterci due foto, 
> e 
> già che ci siamo un video che mostra la procedura per la cottura. Passa in 
> modalità 'ordinamento' e decide la lista  »
> Per fare le cose fatte per bene poi bisognerebbe dettagliare ogni punto con 
> domande tipo "cosa usa Andrea per fare l'azione X? Come si aspetta di fare la 
> cosa Y? Come farebbe in un altro programma? Come si potrebbe cambiare questo 
> comportamento per migliorarlo?".
> 
> Chiaro che è una gran rottura di balle. Ne vale veramente la pena? E' quel 
> che 
> stavate pensando? [ magari non ho capito un cavolo, eh ]

L'esempio che hai citato è un po' troppo specifico rispetto a quello che
vorrei fare adesso. Però comunque è qualcosa che avrei proposto di fare
più avanti.

> Anche perchè *non* siamo veramente utenti, e *non* abbiamo una base di 
> utenti. 
> Nè dei clienti che ci chiedono come fare il nostro prodotto.

Non sono pienamente d'accordo con te. Un giornalista che scrive un
articolo deve sempre pensare al pubblico che ha davanti, anche se di
fatto non è un lettore. Non può inserire termini tecnici senza sapere se
il suo pubblico conosce il loro significato.

Così anche uno sviluppatore non può creare un programma senza sapere se
quello che sta facendo è completo ed utile. Ti faccio degli esempi.

* Noi dovremmo fornire un editor per le presentazioni o lasciare che
  l'utente debba scriversi il codice XML da solo? Senza sapere cosa è
  più comodo per l'utente (e soprattutto cosa è in grado di fare)
  rischieremmo di non implementare una parte molto consistente del
  programma.

Questo esempio è volutamente banale, ma prova a pensare al seguente,
molto più concreto:

* Dovremmo lasciare all'utente la possibilità di personalizzare le
  animazioni? Se sì: l'utente sarà in grado di farlo? Se no: l'utente
  sarà contento? Senza saperlo, quali informazioni dovremmo scrivere nel
  file della presentazione?

Se il programma è troppo complicato per la gente o non soddisfa le loro
esigenze, è chiaro che non lo userà quasi nessuno, così come un articolo
di giornale pieno di paroloni verrà letto da pochi.

Non so se così mi sono spiegato meglio, ma sentiti libero di dirmi che
ho scritto delle grandi cretinate se non sei d'accordo. ;-)

> In ogni caso, qualche idea possiamo provare a buttarla giù, in maniera magari 
> piu' sintetica. Ad esempio, a me piacerebbe usare questo programma anche per 
> buttare giù delle MindMap, mi viene abbastanza semplice associare la stessa 
> interfaccia per fare entrambe le cose (semplicemente non assegnando un path 
> predefinito alla presentazione e muovendosi per zoomare e spostarsi tra gli 
> elementi.

Ebbene, dicendo questo hai già contribuito al mio "piano d'azione". Hai
proposto una feature (a mio parere davvero molto interessante) che
potrebbe entrare tra i nostri obiettivi principali. Se avessi proposto
questa cosa più tardi, probabilmente avremmo dovuto riscrivere gran
parte del codice.

> Intanto farei comunque qualche pensata anche sui punti "tecnologici", che 
> tipo 
> di architettura pensare e che tipo di formato di dati utilizzare.
> ( mi pare che il formato sia la cosa più problematica... sulla grafica ci si 
> arrangia, ci sono mille toolkit, framework, librerie... )

Suppongo che siamo tutti d'accordo sul fatto che una presentazione
consisterà in varie aree (quelle che Prezi chiama "frames") contenenti
vari widgets su cui si sposta la vista (seguendo un percorso fisso nel
caso standard, con un percorso scelto dall'utente nel caso di MindMaps).
Quindi se nessuno ha niente di nuovo da proporre, credo che su questo
potremmo iniziare a pensarci.

> Altra considerazione, comincerei a fare qualche provettina su problemi più 
> semplici. Se progettiamo tutto e poi si rivela una cosa troppo impegnativa 
> rischiamo di non avere nulla di utilizzabile.

Non capisco cosa intendi con "troppo impegnativa". Intendi "troppo lunga
da implementare"? Se è così, non credo che lo sarà mai (in fondo si
tratta di un programmino che visualizza dei widgets). Al contrario,
penso che se facciamo tante prove procedendo per tentativi credo che
butteremo via del tempo e probabilmente ignoreremmo alcune decisioni
interessanti. Naturalmente, in my opinion.

> Invece non mi dispiacerebbe avere come prima Milestone un player che mi 
> permetta di navigare un'immagine creata con qualcos'altro (per dire Inkscape, 
> se il formato più adatto si rivela SVG). 
> Questa cosa potrebbe già essere rilasciabile, impacchettabile, e usabile.

OK, per quanto riguarda la roadmap sono d'accordo con te.

> Quindi, riassumendo tutto questo popò di roba, propongo contemporaneamente di:
> - cominciare a buttar giù qualche pensiero su cosa ci si aspetta da un 
> programma del genere.

È proprio quello che sto proponendo io. Scusa se non sono stato
chiaro. :-(


On Wed, 2010-05-26 at 09:36 +0200, Andrea Colangelo wrote: 
> Cominciamo a scendere sul tecnico: il formato a cui si pensava
> inizialmente era SVG. Altre idee? Gaspa: hai scoperto qualcosa di più
> su pySVG?

Le GTK supportano già SVG. Con GtkPixbuf possiamo ruotare e zoommare
l'immagine, mentre lo spostamento lo possiamo fare normalmente come lo
faremmo per un altro widget.

Per quanto riguarda il path da seguire (ed eventualmente le animazioni
che sceglie l'utente): potremmo creare dentro il file SVG un widget
nascosto contenente le tutte le informazioni necessarie in formato JSON.
Esempio:

  <text-widget visible="False" id="presentation-information">
    {"path": ["frame-1", "frame-2", "frame-3"],
     "presentation-name": "something",
     "other-information": "something else",
     ...}
  </text-widget>

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Mailing list: https://launchpad.net/~a4-dev
Post to     : a4-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~a4-dev
More help   : https://help.launchpad.net/ListHelp

Rispondere a