[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