[Tech] suggerimenti su IDE e librerie GUI

Franco Bagnoli franco.bagnoli@unifi.it
Gio 6 Giu 2002 10:20:22 CEST


scusate se mi intrometto, ma dato che vorrei sviluppare uno strumentino 
per fare facilmente interfacce grafiche a programmi scientifici, vorrei 
avere anche il vostro parere. 

Problema: i programmi scientifici sono in genere fatti così: 

- lettura parametri
- inizializzazione
- loop 
- scrittura dati

ovvero completamente l'opposto di qualcosa event-driven. 

D'altra parte, quando si comincia a modellizzare qualcosa di complesso, la 
gestione dei parametri e la necessità di output grafici per controllare 
quello che succede diventa importante. Inoltre mi piacerebbe avere un 
sistema per poter produrre una interfaccia usabile da altri senza imazzire 
troppo. 

Ho cominciato a fare una librerietta per gestire gli input (in C): 
all'inizio del programma si inserisce una serie di istruzioni del tipo 

input_insert('D', "coefficiente diffusione", &D, 'd');
input_insert('A', "unità di cibo disponibile in una cella reticolare", &A, 'd');
input_insert('K', "unità di cibo necessaria per produrre un nuovo segmento", &K, 'd');
input_insert('S', "soglia di cibo per sporulazione (S<Q<K)", &S, 'd');
...

e poi lanciando il programma si può scegliere se passare i parametri da 
riga di comando

./a.out -D 0.5 -A 20 

o avere un menù 

./ a.out -$

D) coefficiente diffusione: 0.5
A) unità di cibo disponibile in una cella reticolare: 20
K) unità di cibo necessaria per produrre un nuovo segmento: 32
S) soglia di cibo per sporulazione (S<Q<K): 1

choose an option (. to accept) :> 


Inoltre i parametri sono salvati su un file di configurazione in modo da 
non doverli reinserire tutti di nuovo, e possono essere stampati insieme 
ai dati con  una sola istruzione. 

Vorrei a questo punto estendere il concetto nella maniera seguente:

1) possibilità di avere una interfaccia grafica automatica (ovvero senza 
piazzare a mano i campi) per gli input, magari configurabile a piacere

2) mantenere un menù solo testo (e magari curses) quando c'è da lavorare a 
distanza

3) estendere l'approccio ad altri linguaggi (perl e fortran almeno) 

4) estendere il concetto all'output

Ho pensato che una maniera semplice per i punti 1 e 2 potrebbe essere
quella di scrivere un miniserver http in modo da usare un qualsiasi 
browser per l'input. così basta scrivere un po' di html per fare l'input. 

Per il punto 3 direi che la cosa più semplice è quella di scrivere una 
infrastruttura perl e da lì chiamare le funzioni (ed il loop) in C, 
Fortran, ecc. 

Chiaramente invece per il punto 4 ho bisogno di librerie ad alta velocità. 
penserei di usare il PDL (perl data language) che ha un supporto comodo 
per pgplot e opengl, ma diventa difficile fare una cosa portabile. Inoltre 
non è facile integrare la faccenda con la soluzione http, a meno su usare 
l'approccio server push. 

Sono stato alquanto sbrigativo, lo so, ma non so quanti siano interessati. 
Sono ovviamente più che disponibile a parlarne.

Ciao. 
       


-- 
Franco Bagnoli (franchino) <franco.bagnoli@unifi.it> (bagnoli@dma.unifi.it)
virtual location: Dipartimento di Energetica "S. Stecco"
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
GPG Key fingerprint = 169D 9EA5 8FD3 7EDA E43A  9830 255F BCEC 0D63 3728




Maggiori informazioni sulla lista flug-tech