Basta un click …

… Una spruzzata di pseudo xml e qualche riga di bash per creare applicazioni grafiche.

Stavo pascolando per tutta internet per ingannare il caldo quando mi sono imbattuto in questo programma che, se pur con delle pecche di gioventù mostra buone potenzialità.

Se non volete pasticciare con zenity per dare un’interfaccia grafica ai vostri script bash troverete in BUC una alternativa, a mio parere non altrettanto valida ma sicuramente promettente.

La prospettiva è rovesciata. Se in zenity sono disponibili delle finestre predefinite per interagire con  l’utente, buc vi permette di definire un’interfaccia grafica associando ai controlli degli script bash, che possono anche interagire tra loro. Cuore del sistema sono dei particolari file di configurazione che sul sito ufficiale vengono definiti come file xml.

L’xml di questi file è a dir poco particolare, può, in alcuni casi essere malformato e non passare le verifiche di xmllint. Ho fatto qualche prova perché mi sono stupito quando un piccolo e banale script di hello world non ha prodotto alcun risultato se non una finestra vuota. E’ saltato fuori che avevo saltato un tag e quindi l’xml non poteva essere interpretato correttamente.

L’unico motivo che possa impedire una validazione formale dell’input sarebbe la necessità di dover interpretare file malformati e così ho potuto valutare: le redirezioni vengono interpretate da xmllint come entità e la validazione non va a buon fine. La soluzione di un simile problema potrebbe essere banale, basterebbe inserire gli script con le redirezioni in un elemento CDATA per poter affrontare la validazione. Il programma non lo fa, almeno per ora, anche se lo sforzo per poter inserire questa feature non dovrebbe essere particolarmente importante.

Un altro peccato veniale del progetto è una certa mancanza di coerenza tra i tag, alcuni hanno opzioni specificate come sottoelementi, mentre in altri la stessa opzione viene specificata, per me più naturalmente, come attributo del tag. Mi riferisco agli elemento title dei tag tab ed all’attributo title dell’elemento button.

Altra pecca, l’attributo filter del tag file che può essere multiplo e sarebbe stato espresso più naturalmente come una sequenza di sottoelementi.

A parte questi appunti, che non sono altro che questioni di lana caprina, il progetto è interessante ed è già usabile e ne consiglio il test e l’utilizzo. I ragazzi del Sicilinux stanno facendo un bel lavoro.

Qualche riferimento per approfondire:

2 pensieri riguardo “Basta un click …

  1. Ciao,
    come di sviluppatore di Buc ti ringrazio per la recensione, e soprattutto ti ringrazio per i commenti e per le critiche costruttive, che come sempre sono le cose più importanti da conoscere per riuscire a migliorarsi, ma spesso sono anche le più difficili da trovare.
    Per quanto riguarda i problemi sulla redirezione ti do pienamente ragione, in effetti è un problema anche per il parser xml interno a Buc che al momento non è ancora in grado di leggere correttamente gli script contenenti il simbolo ‘<‘… l’idea del CDATA potrebbe risolvere tutto… anche se appesantirebbe un filo la sintassi. Ci penserò, intanto grazie del suggerimento 😉
    Sulla mancanza di coerenza dei tag, invece, il problema è che alcune opzioni sono specificate come sottoelementi semplicemente per essere ‘dinamiche’, il cui valore è cioè calcolato a runtime da uno script. Per altre opzioni invece sarebbe stato inutile prevedere la possibilità di specificare il valore dinamicamente, per cui sono state inserite come attributi. Ti informo però che il problema sarà risolto nella prossima versione, la 0.5: a partire da questa versione ogni opzione potrà essere specificata sia come attributo che come sottotag, a piacimento: in questo modo sarà l’utente stesso a decidere quali opzioni andranno impostate in modo “statico” (tramite parametro) e quali andranno riempite in modo “dinamico” (tramite uno script in un sottotag).

    Grazie ancora, e complimenti per il blog! 🙂

  2. Scusa se ho approvato il commento con tanto ritardo ma sono stato costretto a lasciare il blog a se stesso per qualche giorno.

    Sono contento che lo sviluppo proceda perché, come ho già scritto, credo che il progetto meriti.
    Cercherò di mettermi in contatto con voi per la parte tecnica (che magari non avete piacere a parlarne su un blog terzo).
    Continuate così.

Lascia un commento