Numero 13 di Michael J. Hammel traduzione di Antonio Cartelli


Predisponete pure il vostro browser alla dimensione desiderata.
La Musa è stata predisposta per adattarsi allo spazio disponibile!



Barra dei Bottoni Musa: 
  1. v; per farsi assalire dai pensieri 
  2. n; [fr. Una delle nove sorelle, dee delle scienze e delle arti nella mitologia greca]: sorgente di ispirazione 
 Benvenuti dalla Musa della Grafica! Perché una "musa"? Al di là dell'aspetto delle sorelle, le precedenti definizioni sono la maniera migliore di descrivere il mio interesse nella Computer Graphica: questa disciplina mi fa sprofondare nelle mie riflessioni ed è una sorgente giornaliera di ispirazione. 

[ Novità nella Grafica ] [ Meraviglie del Web ] [ Riflessioni ] [ Risorse ]

Questo spazio è dedicato all'uso, alla creazione, alla distribuzione ed alla discussione di pacchetti per la Computer Grafica su sistemi Linux.
 
Bene, sono all'incirca un paio di mesi che non ci si sente. Ho lavorato ad un progetto particolarmente importante per tutto il periodo dell'anno passato e questi ultimi tre mesi mi hanno richiesto un impegno particolare. Se non altro il progetto si può dire concluso, o quasi (sono rimasti da definire soltanto dei dettagli inessenziali) - si tratta di un libro sul Gimp dal titolo: The Artists Guide to the Gimp (Guida per artisti all'uso del Gimp) che dovrebbe uscire in settembre. Che dire: spero che vi piaccia. Certo che scrivere un testo di carattere tecnico si è rivelato molto più ostico di quanto pensassi, per il futuro penso di dedicarmi alla scrittura di qualche novella fantastica per la quale non è necessario realizzare un CD, creare centinaia di immagini, o prevedere edizioni successive.

Dall'uscita dell'ultimo numero della musa c'è stata una miriade di annunci connessi con il mondo della grafica, sfortunatamente non ho pensato a registrarli e dopo un po' sono scomparsi dal calcolatore che li ospitava. Ciò di cui dispongo, per questo mese, sono pertanto informazioni piuttosto recenti. Mi sono soffermato per lo più soltanto su informazioni prelevate dalle liste che ho continuamente sotto controllo e su e-mail ricevute da alcuni lettori. È sorprendente come ancor oggi riceva messaggi su argomenti trattati in numeri ormai datati della Musa; mi viene da pensare che ci sia molta gente che stia scoprendo la Musa soltanto oggi.
 
Nel numero di questo mese mi occuperò di ...

Farò di più il mese prossimo ma tenete presente che ho appena finito il libro e che ho avuto soltanto tre giorni per preparare la Musa.


 
Graphics Mews
     Avvertenza: Prima di addentrarmi eccessivamente nell'argomento devo far rilevare che ogni nuova informazione che inserisco in questa sezione ha solo ed essenzialmente un significato: quello di segnalazione di una novità. Ho avuto l'opportunità di venirne a conoscenza mediante alcune mailing-list cui sono iscritto, via gruppi di news Usenet, o infine, mediante messaggi inviatimi da lettori e curiosi. Certamente non garantisco questi prodotti (alcuni dei quali possono essere commerciali), faccio soltanto presente che ne ho sentito parlare il mese scorso.
 
indent

Xi Graphics ha rilasciato una distribuzione Linux completamente integrata

In realtà non è integrata dal punto di vista grafico, ma Xi è un produttore/distributore di server X e come gli altri realizzatori di server X è particolarmente importante per il mondo della grafica in ambiente Linux. Sia quindi il benvenuto.

Xi Graphics sta di fatto commercializzando una distribuzione Linux che comprende i suoi Server X Accelerati ed il prodotto per desktop maximum/CDE. Il prezzo unitario della distribuzione nell'edizione Executive è di $214.95 l'edizione per Sviluppatori ha invece un costo unitario di $364.95.

Per dettagli ed approfondimenti: 
Kyle Fink 
Xi Graphics 
(303) 298-7478 
kyle@xig.com

indent

Programmi utili per la PalmCam Panasonic

Fredrik Roubert ha ultimamente reso disponibile una prima versione di un driver per PalmCam della Panasonic, una fotocamera digitale NV-DC1000. Stando a quanto assicura Robert un paio di caratteristiche interessanti del software comprendono la possibilità di specificare intervalli di download e vedere in anteprima o cancellare diverse immagini in una stessa sessione.

Per saperne di più si dia un'occhiata alla pagina web redatta dall'autore, all'indirizzo
http://www.df.lth.se/~roubert /NV-DC1000.html 

Il pacchetto è disponibile per il download sui seguenti siti: 
ftp://ftp.df.lth.se/ pub/users/roubert/Linux 
ftp://sunsite.unc.edu/ pub/Linux/apps/graphics/capture 
 

Rapporto Linux / 3-D SIGGRAPH

Ad Orlando in Florida, in occasione di SIGGRAPH '98, Daryll Strauss e Brian Paul hanno organizzato una particolare sessione di gruppo di interesse (SIG) per parlare di:
Linux, accelerazione hardware 3-D, e temi correlati. 

Le prenotazioni sono state molte di più di quanto ci si potesse aspettare e si sono già registrate 100-150 persone.

Una sintesi delle relazioni che verranno tenute da Brian Paul, autore del pacchetto Mesa, può essere reperita all'indirizzo: 
http://glide.xxedgexx.com/ SIGNotes.html 


Novità da Blender

Ci sono stati diversi annunci di novità da parte di Blender, la sezione della NeoGeo relativa al modellizzatore tridimensionale.  Ecco, in breve, alcuni annunci presi dalla loro pagina delle novità

Il manuale Blender (1998-07-10) 

    Contiene tutte le informazioni che si possono desiderare, rese più gradevoli dalla grafica cartacea accattivante: si prevede che il manuale del Blender 1.5 debba uscire per ottobre. Informazioni sul prezzo e sulla possibilità di prenotare delle copie saranno disponibili in agosto. 
La Mail list non ufficiale di Blender (16-06-1998)  La versione 1.34 per Linux/FreeBSD è disponibile da oggi (04-06-1998). 
    In questa versione sono stati fissati molti errori ed aggiunte nuove caratteristiche una delle quali è Play (flipbook) che può essere utilizzata per veder scorrere all'indietro animazioni di prova, (Hamx) introduce il conteggio delle inquadrature durante l'esecuzione all'indietro dell'animazione.  Si legga la pagina BlenderBeta per ulteriori informazioni.

Il sottosistema Linux IEEE-1394 (FireWire) - Rapporto sullo stato dei lavori

Emanuel Pirker sta lavorando da un bel pezzo al sottosistema Linux IEEE-1394 (FireWire) ed ho pensato che sarebbe stata una bella cosa fare un piccolo resoconto sullo stato di avanzamento dei lavori.

IEEE-1394 è il nome di un bus seriale economico in termini di costo ma ad alta velocità. La Apple lo ha registrato come "FireWire". Le implementazioni correnti prevedono il raggiungimento di 200 Mbit/s ma presto sarà possibile raggiungere i 400 e quindi gli 800 Mbit/s e così via. Questo bus di comunicazione è stato progettato per applicazioni multimediali a livello di utente finale (ad es. per la connessione di una videocamera digitale con il PC) e per periferiche ad alta velocità (Hard Disk, CD ROM, ma anche scanner e stampanti). Poiché questo standard assicura qualità del servizio (banda garantita e latenza limitata) potrà essere utilizzato anche in applicazioni industriali real-time.

Il supporto per Windows (NT) e Rhapsody sarà presto disponibile (alcune fasi sono già operative) ma anche gli utenti Linux vorranno beneficiare di questa nuova tecnologia - è per questo che Emanuel ha iniziato lo sviluppo di un progetto universitario al riguardo l'inverno scorso. 

Emanuel dispone finalmente di un sottosistema progettato in maniera pulita, un driver Adaptec AIC-5800 ed un po' di codice per testarlo. Allo stato attuale non possono essere utilizzate tutte le funzioni FireWire ma si è raggiunto un punto in cui l'API è stabile ed altri possono pensare di contribuire partecipando al progetto (ad es. realizzare il drive per la videocamera). 

Chi è interessato al progetto scriva pure un'e-mail ad Emanuel - è indispensabile poter disporre di collaboratori per andare avanti. 

Indirizzi di riferimento: 
WWW:  http://www.edu.uni-klu.ac.at/ ~epirker/ieee1394/ 
E-Mail: epirker@edu.uni-klu.ac.at  
 
 


Notizie dell'ultima ora: 

ImageMagick 4.0.8 
Panard Vision - Motore Real-time 3D portabile per Linux 
Mesa 3.0 beta 7 
SANE 0.74 
FreeWRL 0.14 

Per ulteriori dettagli su quanto appena riportato si veda Freshmeat.net.

Pacchetto per la gestione di scanner XVScan 1.80

tummy.com, ltd. è lieta di annunciare l'uscita di XVScan Versione 1.80 che comprende ora la gestione degli scanner Microtek ScanMaker E3 ed E6 oltre a quella degli Scanjet SCSI della HP. Allo stato dei fatti il supporto per i prodotto Microtek è disponibile esclusivamente per Linux e Solaris anche se sarà presto disponibile anche per altre piattaforme.

XVScan utilizza il popolare pacchetto xv per la manipolazione delle immagini in ambiente X Windows e comprende una copia di xv completa di licenza software a corredo. È un pacchetto commerciale per il quale sono resi disponibili i sorgenti.

È difficile spiegare a chi non ha mai utilizzato il celeberrimo pacchetto XV di John Bradley per la gestione di immagini quanto esso sia potente. In breve, XV legge e scrive file in una dozzina di formati diversi, permette la creazione di potenti mappe di colori, cattura di finestre, conversione colore-spazio, selezione di parti di immagini, algoritmi di manipolazione delle stesse e così via.

XV è anche un potente strumento per la manipolazione di immagini e mappe di colore, fornisce il supporto ad oltre una dozzina di formati di immagini, dispone di Visual Schnauzer e fornisce un'interfaccia grafica facilissima da utilizzare per vedere e catalogare le immagini scannerizzate.  Tra i formati delle immagini supportati ci sono: PNG, GIF, JPEG, JPEG progressivo, TIFF (compresso e non), Postscript (richiede ghostscript), PBM/PGM/PPM (raw ed ASCII), Bitmap X11, XPM (X PixMap), Rasterfile Sun.

In pratica con XVScan si ha l'ooportunità di scannerizzare immagini direttamente in XV in maniera molto economica (ma soprattutto senza perdita di tempo).

Si veda il sito web http://www.tummy.com/xvscan/ per una lista completa dei tipi di scanner supportati.

Novità nella versione 1.80

  1. Supporto per ScanMaker E3 and E6 Microtek
  2. Scannerizzazione "clicca e vai" per HP ScanJet 5P
  3. Aggiornamento delle conversioni JPEG e TIFF
La versione per Linux richiede che sia attivo un generico drive per SCSI; è stata provata con la versione 1.2.7 del nucleo e con le sue successive senza alcun problema.

La versione attuale di XVScan è la 1.80 datata 11-06-1998 basata sulla versione 3.10a di XV del 29/12/94.

Il costo di XVScaè di $US50 per Linux, HP-UX, FreeBSD e BSD/OS qualora si voglia scaricare direttamente una copia del software via FTP. La versione per Solaris costa $US80 essendo fornita insieme al drive SCSI SGLite.  Per copie su CD-ROM va aggiunto il costo del supporto: $US20. Per effettuare ordini si può scrivere un'e-mai a xvscan@tummy.com o si può procedere via web all'indirizzo https://www.tummy.com/ordering/onlineorder.phtml.  Il pagamento può essere effettuato a mezzo assegno o carte di credito Visa/Mastercard/Discover/AMEX.

Per contattare tummy.com, ltd, telefono: (970) 223-8215, fax: (408) 490-2728,
URL: <http://www.tummy.com/xvscan/>
email: <xvscan@tummy.com>


S.u.S.E. rilascia nuovi server X per schede Rendition, Cyrix, SiS e 3DLabs

S.u.S.E. è lieta di annunciare il rilascio di un nuovo insieme di server X per svariati chipset grafici molto diffusi.

Per prevenire ogni forma di confusione e per confermare una volta di più che questi server sono parte integrante di XFree86, S.u.S.E. ha modificato le modalità di assegnazione dei nomi dei suoi server. In luogo del prefisso XSuSE verrà utilizzato il prefisso XFCom, abbreviazione di XFree86 Compliant (conforme). La conformità XFree86 significa che i sorgenti di questi server sono già parte integrante dei sorgenti di sviluppo XFree86 e che verranno rilasciati con una delle prossime versioni di XFree86. Quella descritta è la differenza principale che contraddistingue questi server da quelli cui viene assegnato il prefisso XBF, acronimo per X Binary Free, che significa che i sorgenti di questi server sono disponibili esclusivamente sotto DNA per cui non possono essere inclusi in XFRee86.

Facendo seguito a questa convenzione di assegnazione di nomi si è passati dal server XSuSE_Elsa_Gloria a XFCom_3dLabs e da XSuSE_SiS a XFCom_SiS. Per di più sono stati aggiunti i nuovi server che supportano i chipset molto diffusi della Rendition Verite e le CPU Cyrix MediaGX tutto-in-uno che sono dotate di funzionalità grafiche.

Il server XFCom_Rendition supporta i chip Rendition Verite V1000, V2100 and V2200.
Tra le schede gestite ci sono

Il server XFCom_Cyrix supporta la CPU Cyrix MediaGX

Il server XFCom_SiS supporta

Il server XFCom_3DLabs supporta Tutti questi server sono disponibili come eseguibili in libc5 per Linux x86 all'indirizzo
http://www.suse.de/ XSuSE/XSuSE_E.html.

Gli eseguibili per altri sistemi operativi così come quelli per glibc verrano resi disponibili al più presto. Per ogni tipo di domanda su questi server e sul loro supporto NON si contatti XFree86 ma si scriva invece un'e-mail a x@suse.de.


 

Lo sapevate?

Un commento apparso sulla lista IRTC-L suonava più o meno così: Bernd Sieker, una delle persone che regolarmente contribuisce al dialogo sulla lista dell'IRTC ha fornito la seguente risposta:  
Nome Aspect Ratio
Super 35 1:1.33
Academy 1:1.37
Wide Screen 1:1.66
Wide Screen 1:1.85
16:9 1:1.77
Cinemascope 1:2.35
  Altra domanda apparsa sulla stessa lista è stata: cosa sono NTSC e PAL?

Ancora una volta Bernd Sieker ha fornito la risposta:

Domande e Risposte

D:  C'è qualcuno che sa come settare una tavoletta Wacom Artpad per poterla utilizzare col Gimp? o se è possibile farlo? Mi sembra occorra l'XInput o qualcosa di simile.
 

R:  Juergen Schlag ha fornito la seguente risposta:

'Musa:  Quali driver e quali documenti?  C'è nessuno che sa a che cosa faccia riferimento J. S.?  

L'angolo della posta

Dan Schmitt ha scritto: Michael B. East ha scritto: Scott Manley ha scritto: 'Musa:  Amici! Grazie per le indicazioni fornite.
 
Steve Martin mi ha scritto chiedendomi alcune informazioni sul mini-Howto sulla grafica per Linux: 'Musa:  Ha perfettamente ragione.  Lo terrò presente e provvederò. 'Musa:  È verissimo.  Mi sono procurato il testo ed ho potuto rendermi conto che se anche non è di facile lettura affronta l'argomento in maniera esaustiva ed approfondita. 'Musa:  È sicuramente un contributo validissimo. Grazie per tutti i chiarimenti.  È mia intenzione procedere al più presto ad una completa revisione dell'LGH anche se non mi riesce di fare una previsione sui suoi tempi di realizzazione e sulla sua conseguente disponibilità.

Roderick A. Anderson mi ha chiesto chiarimenti sulla conversione di immagini GIF in immagini GIF interlacciate.

'Musa:  NetPBM, credo.  Ma anche ImageMagick dovrebbe essere in grado di farlo.  Un pacchetto commerciale è invece Image Alchemy, che dovrebbe aver un costo differenziato a seconda che venga acquistato da un'azienda o per scopi personali (credo - perché è un bel po' che non vado a controllare). 'Musa:  Giovanotto, si tratta di una versione vecchiotta. Se riesci a trovare il tempo di farlo prova la versione 1.0 del Gimp www.gimp.org.  Tieni presente che devi procurarti innanzitutto le librerie GTK 1.0: www.gtk.org.  Il Gimp è in grado di leggere GIF non interlacciati e convertirli in GIF interlacciati. È abbastanza facile da farsi.




Come costruire pagine web dinamiche

Ultimamente ho iniziato un'opera di profonda revisione del mio sito web graphics-muse.org;  impresa che ho deciso di intraprendere per la quinta volta negli ultimi cinque anni, sebbene non sia entrato in possesso di un dominio tutto mio da così tanto tempo. Questa esigenza di continuo aggiornamento viene dalla necessità di dover riuscire a ritrovare agilmente le mie risorse grafiche oltre a poterle aggiornare altrettanto facilmente.  Eccomi così alle prese con un database e con la creazione di pagine dinamiche.  La parte database è stata la meno impegnativa - ho deciso infatti di utilizzare: msql  che ho avuto modo di provare per alcune semplici applicazioni domestiche e che si è rivelato più che sufficiente a risolvere i miei piccoli problemi. Le pagine dinamiche si sono rivelate invece qualcosa di completamente nuovo e per causa loro ho dovuto avventurarmi nel mondo del Perl.

Mi sono sempre fatto un vanto del gran numero di linguaggi che ho dovuto imparare nel corso degli anni. Recentemente, però, ho visto spegnersi il mio entusiasmo giovanile, anche perché ho constatato che il C soddisfa ampiamente le mie esigenze.  Sebbene sia convinto che il C sia ancora più che sufficiente per affrontare la maggior parte dei problemi con i quali mi devo misurare mi rendo anche conto che devo cominciare a pensare seriamente a confrontarmi con linguaggi più nuovi quali quelli orientati agli oggetti. Per quanto mi riguarda odio il C++, mi è capitato di doverlo utilizzare per qualche lavoretto e mi sembra una vera e propria perversione del C. Java è l'obiettivo di lungo periodo che mi sono prefissato di raggiungere essenzialmente perché mi procuro da vivere realizzando interfacce grafiche e Java è il futuro per me e per quelli come me. Perl, d'altro canto, è la scelta obbligata per lavorare su Web e, sebbene detesti imparare un ulteriore linguaggio di scripting, mi risulta difficile farne a meno se voglio fare sviluppo Web. Pertanto eccomi al Perl.

Fortunatamente creare pagine Web mediante il Perl risulta essere abbastanza agevole. Un modulo perl denominato, per l'appunto, Msql mi consente di accedere al mio database, mentre un ulteriore modulo CGI.pm consente di realizzare pagine HTML in un lampo. Sia per msql che per CGI.pm sono disponibili dei testi a stampa ed imparare entrambi risulta molto più agevole di quanto non sia la tradizionale interrogazione di pagine di manuali, cosa che ho dovuto fare da una vita. È ora di dare un'occhiata a come si possono utilizzare i due moduli Msql e CGI.pm per creare una pagina dinamica molto semplice.

Da quanto vado a dire non c'è da aspettarsi, ovviamente, che si imparerà a programmare in perl, anche se le cose che dirò potranno sicuramente tornare utili. In pratica ci immergeremo direttamente nel problema senza soffermarci troppo sui dettagli. Devo precisare poi che quando farò riferimento al database utilizzerò le lettere minuscole - msql -, quando mi occuperò del modulo perl utilizzerò l'iniziale maiuscola - Msql. Per finire, è opportuno che chi legge abbia presente che è utile avere un po' di familiarità con i comandi SQL, ovvero che non bisogna farsi impressionareda loro quando li si incontra. Quanto vado a descrivere è un esempio facilissimo e chiunque dovrebbe essere in grado di comprendere ciò che accade dalla lettura del codice riportato e dalle spiegazioni che lo accompagnano.

Esaminiamo innanzitutto ciò che occorre avere o procurarsi per fare questo esperimento

Quanto segue comprende la descrizione delle varie versioni del software che ho installato sul server che ospita il mio dominio.  Non conosco con esattezza la versione del modulo Msql, in ogni caso lo si può trovare sul mirror CPAN.  Sembra poi che chi dispone del perl 5.004 abbia già in dotazione il pacchetto CGI.pm (dovrebbe essere parte integrante della distribuzione proprio a partire dalla versione 5.004).  Se così non fosse ci si deve procurare il modulo da uno dei mirror di CPAN.  Si badi che CPAN sta per Comprehensive Perl Architecture Network ed è il sito sul quale si possono trovare tutti i tipi di moduli da utilizzare col perl. I moduli sono, in generale, delle vere e proprie estensioni per il perl; scopo del modulo CGI.pm è quello di consentire l'uso di metodi e funzioni per generare pagine HTML mediante script CGI. In maniera analoga il modulo Msql mette a disposizione delle funzioni per poter accedere a database msql.  La versione corrente del modulo database msql disponibile è la 2.0.x, anche se, tenuto conto dei problemi che mi ha dato quando l'ho provata su una macchina Solaris, ho optato per la più stabile 1.0.x che è poi quella che ho in funzione sul mio server.

Perfetto! Possiamo ora creare un semplice database.  Innanzitutto occorre assicurarsi che msql sia installato in maniera corretta (basta seguire alla lettera le istruzioni riportate nel pacchetto - è semplicissimo da compilare ed installare).  Subito dopo si lancia il demone del database:

e si passa a creare un database vuoto, che nel nostro caso sarà "musa".  Per farlo si utilizza il comando msqladmin: Si può ora passare ad utilizzare il monitor msql per aggiungere interattivamente una tabella al database e per inserire al suo interno delle righe con i rispettivi dati.
Vediamo come si può arrivare a sortire il medesimo effetto per via diversa (e più agevole).  Creiamo un file di testo con dei comandi e quindi passiamolo al monitor in modalità batch.  Un esempio di file di testo che realizza quanto detto è riportato di seguito (compresi i commenti): Salva il tutto in un file denominato "tools.msql".  Il nome del file può essere qualunque. I parametri "\p" e "\g" dicono al monitor di scrivere il comando quando viene eseguito e quindi anche di eseguirlo.  Si noti che il testo da inserire in tabella è racchiuso tra apici singoli, non doppi!  Questo file può essere passato al monitor mediante il seguente comando: Certo, è un database elementare, ma si tratta solo di un esempio.  Realizziamo ora uno script CGI, mediante il perl, con il quale visualizzare un paio di tabelle, una delle quali conterrà i dati del database.  La prima cosa da fare è dire allo script di utilizzare il perl5 e di caricare i moduli Msql e CGI.pm: Siccome la collocazione dell'eseguibile perl può essere differente, si verifichi innanzitutto in quale area del sistema si trova. Tutto ciò che segue "use CGI" dice al perl quali funzioni CGI caricare: nel nostro caso le funzioni standard, più le estensioni HTML3 e netscape.  Ovviamente vi sono molti modi diversi per specificare queste estensioni; per i dettagli sull'utilizzo di una diversa sintassi si rimanda alla documentazione Perl e CGI.pm (si veda alla fine dell'articolo). Le poche righe precedenti servono a far scrivere al sistema la sezione <HEAD> senza che ci si debba impegnare a farlo in prima persona.  A questo punto basta modificare il nome dell'autore e le righe relative al titolo per poterle adeguare alle proprie esigenze.  Veniamo adesso alla connessione al database: La prima riga dopo il commento assegna un valore identificativo del database alla variabile dbh1.  La riga successiva usa il metodo selectdb() per accedere al database di nome "musa".  Abbastanza semplice, non è vero? Va notato che si può anche specificare un calcolatore remoto nel metodo connect() della prima riga e con esso il nome del database. Credo però che lasciare il codice com'è e provvedere separatamente alla definizione di questi ulteriori dati consenta di avere programmi più facilmente manutenibili, soprattutto per chi dovesse trovarsi a metterci mano a distanza di tempo senza conoscere i dettagli delle operazioni effettuate.

Ora che abbiamo aperto la connessione con il database andiamo a vedere come accedere alle informazioni in tabella.

Può sembrare difficile ma non lo è! La prima riga assegna un identificatore per l'operazione SELECT alla variabile sth, quest'ultima viene poi utilizzata per accedere a ciascuna delle righe della tabella risultato della query SELECT.  Nel nostro caso la funzione query() seleziona tutte le righe della tabella "tools".  Se avessimo aperto un ulteriore database (oltre al nostro "musa") avremmo dovuto utilizzare un diverso descrittore, come ad es. dbh2, per poterne gestire i dati. In ogni caso, ovviamente, avremmo dovuto selezionare il database con il comando selectdb() come abbiamo fatto prima nel caso di dbh1.

Le due righe successive definiscono le variabili di riga e ciò che dovrà risultare locale.  In ogni caso entrambe le variabili dovranno essere di tipo lista.  Le liste hanno un carattere particolare in perl - si può accedere a tutti i loro elementi utilizzando il simbolo @ come prefisso, ovvero si può accedere ai singoli elementi della lista utilizzando il prefisso $ per il nome della variabile ed un indice numerico come nel caso di un array.  Tra poco vedremo esempi di entrambi.

Le quattro righe successive rappresentano un ciclo while() che elabora ciascuna delle righe restituite dalla query SELECT.  La funzione fetchrow() viene utilizzata per assegnare la riga corrente alla lista @result.  Una riga di tabella è costituita, ovviamente, da due entità:  il tooltype ed il toolname.  La riga di testo con il push() dice al sistema di appendere quanto riportato appresso alla lista @rows:

Questa lista all'avvio è vuota e ogni volta che viene richiamata la funzione viene aggiunto un dato alla lista.  Ogni dato è costruito dal codice del modulo CGI.pm necessario a specificare un elemento di tabella. Ciò che compare tra le parentesi graffe è l'insieme degli argomenti degli elementi della tabella.  Segue l'elenco di ciò che trova posto all'interno dei vari elementi, che nel nostro caso è il nome del tool - $result[1].  Si tenga bene a mente che si è assegnata la riga della tabella corrente alla lista @result e che si sta accedendo ad un elemento di questa lista mediante il prefisso $ ed un indice di array.  Il valore dell'indice parte sempre da 0 per cui un valore dell'indice pari a 1 specifica il secondo elemento della lista.  Alla fine del ciclo while() si ottiene la lista di elementi di tabella contenenti ciascuno i nomi dei tool.  Li utilizzeremo per creare una tabella al volo.

Al di sotto del ciclo while() c'è un'altra variabile locale, tool_list.  Questa variabile viene utilizzata per visualizzare nella nostra pagina una tabella.  La funzione table() è fornita con CGI.pm e viene utilizzata per generare una tabella.  Si noti che né questa funzione né le funzioni td() nel ciclo while() hanno ancora prodotto alcun dato in uscita; i loro valori sono stati memorizzati per un utilizzo successivo.  Ancora una volta le parentesi graffe racchiudono argomenti per i tag HTML della tabella.  Segue un'ulteriore funzione facente parte del pacchetto CGI.pm - Tr(), la maiuscola iniziale ha il solo scopo di consentire di distinguere questa funzione dalla "tr" del perl e far sì che non ci sia ambiguità tra le due.  Nella maggior parte dei casi, però, le funzioni CGI.pm hanno le iniziali minuscole. La nostra Tr() ha il compito di creare righe di tabella all'interno delle quali disporre tutti gli elementi che abbiamo inserito nella lista @row.  Ci siete ancora? Benissimo! Non ci resta che far spedire il tutto indietro al browser.

Il comando print() è del perl e serve a stampare sull'unità standard di output, che è poi quello che si vuole da uno script CGI. La funzione center() fa parte di CGI.pm e provvede a centrare la tabella prodotta da table() (che pure fa parte di CGI.pm). In effetti prima era già stata creata una tabella all'interno della variabile $tools_list, la si sta ora inserendo all'interno di un'ulteriore tabella.  Si definiscono pertanto gli argomenti della nuova tabella, li si fa seguire da una singola riga di tabella Tr() e da un singolo elemento all'interno del quale inseriamo la tabella $tools_list.

Il testo appena redatto va quindi salvato in un file web.pl da mettere nell'area cgi-bin del proprio server web, dopo essersi assicurati che abbia i giusti permessi. Per vedere in funzione questo piccolo script ed averne l'output previsto si può andare alla pagina:  www.graphics-muse.org/cgi-bin/web.pl.
 Non è molto ma questo esempio è utile per vedere come sia facile integrare un po' di informazioni provenienti da un database all'interno di una pagina web.  Per quanto riguarda l'impegno richiesto, mi sono occorsi all'incirca due giorni per preparare il tutto, la maggior parte del tempo utilizzato è servita per condurre esperimenti per la realizzazione dei testi scritti. Probabilmente si sarebbe potuto utilizare anche meno tempo ma ho fatto tutto sul posto di lavoro ed il dover dividere l'utilizzo delle macchine con dei collaboratori mi ha impegnato otre misura.

Per quanto concerne la documentazione disponibile, possibili testi da consultare sono:

La guida msql è dedicata alla versione 2.0 del software, ma l'ho trovata molto utile come guida all'uso e alle caratteristiche di msql.  Se si ha bisogno della documentazione per la versione 1.0.x si può provare a vedere la pagina corrispondente al sito web msql.
 



 
Musings
 

Gimp 1.0

Per quelli di voi che nel corso degli ultimi tre mesi 
  1. sono vissuti in fondo ad una grotta
  2. sono stati catturati e tenuti prigionieri dagli alieni
  3. o più semplicemente sono stati oberati di lavoro
ho una novità esplosiva: è uscito il Gimp 1.0.  L'annuncio del software è stato fatto il cinque di giugno.  Siccome non sono usciti articoli della 'Musa dal mese di aprile, è possibile che ve lo siate perso. Per motivi a me sconosciuti l'annuncio avvenuto sulla lista comp.os.linux.announce.  non ha sollevato il clamore che mi sarei aspettato, o forse non me ne sono accorto io, visto che ero veramente molto impegnato, o addirittura ero con gli alieni. È stata un'estate lunghissima.

Come ho avuto modo di dire nella presentazione della 'Musa (si sa, si tratta proprio di ciò che normalmente nessuno legge) ho trascorso buona parte dell'anno appena trascorso a lavorare su un testo relativo al Gimp. Nel giugno del 1997, infatti, SSC, l'editore del Linux Journal e l'ospite della Linux Gazette, mi hanno contattato per propormi la realizzazione di un testo sul Gimp.  Mi è parsa una idea brillante e mi ci sono buttato a capofitto anche se i problemi non sono mancati: la cosa più ardua è stata mantenere il lavoro in linea con gli aggiornamenti del software. Per buona parte di quanto ho scritto, infatti, ho dovuto attendere che si intravedesse in qualche modo il traguardo dello sviluppo della versione 1.0 del Gimp, non c'è da meravigliarsi allora che gli ultimi tre mesi siano trascorsi a fare aggiornamenti e modifiche dell'ultimo minuto. Penso proprio che siano stati gli ultimi minuti più lunghi della mia vita. 

Ora posso dire, però, di essere veramente soddisfatto del lavoro fatto. Il testo verrà stampato in quadricromia e su carta patinata e vi saranno moltissime immagini e numerosissimi esempi. Il testo è accompagnato anche da un CD all'interno del quale si troveranno le immagini del testo oltre ad una gran quantità di materiale utile. Ci sono alcune cose che non sono riuscito ad inserire nel testo in quanto non ne ho avuto il tempo, forse troveranno una adeguata collocazione nella prossima edizione, o in qualche articolo del Linux Journal o forse addirittura nella 'Musa. In ogni caso un anno è proprio tanto per la prima edizione. 

I sorgenti del Gimp 1.0 si trovano, a tutt'oggi, raccolti in tre pacchetti software: il nocciolo del software, i pacchetti extra ed i pacchetti instabili.  I primi due, ovvero il nocciolo ed i pacchetti extra, si compilano ed installano abbastanza facilmente.  Il software che costituisce i pacchetti instabili includono una notevole quantità di plug-in interessanti ma occorre spendere un po' più di tempo per capire come vanno compilati rispetto al nucleo ed all'altro software.

Alcune delle caratteristiche più interessanti della versione 1.0 comprendono un eccellente plug-in: Print, che consente di gestire direttamente diverse stampanti HP ed Epson ed è in grado di produrre anche output in formato Postscript.  Ne consegue che si può stampare direttamente su una stampante postscript o gestire l'output mediante Postscript. 

- All'inizio della colonna accanto -
Approfondimenti ...  

Per questo mese non ce ne sono.

Altro Plug-in notevole è il GFig, che consente di disporre di un limitato numero di primitive grafiche.  Si possono disegnare cerchi, curve, quadrati, rettangoli ed altro, trasportarli ovunque, rappresentarli su strati diversi utilizzando ogni tipo di pennello dalla forma più diversa ed i colori più vari. L'interfaccia non è molto sofisticata ma esso rappresenta comunque un notevole miglioramento rispetto alle primitive grafiche disponibili con il pacchetto base. 

Ulteriori miglioramenti rispetto alle versioni precedenti del software sono rappresentati da: 

  • configurazione in fase di esecuzione attraverso una finestra di dialogo Preferences
  • un'interfaccia per Netscape per accedere a risorse on line
  • una migliore organizzazione dei menu di scelta
  • possibilità di accedere alle funzioni di strato più utilizzate mediante dei bottoni
  • una notevole quantità di script Script-FU
Il Gimp ha avuto ultimamente gli onori della stampa, ha trovato spazio sulle versioni on line di alcuni periodici su carta stampata ed è comparso in alcuni spazi radio (NPR - National Public Radio).  Si dia pure un'occhiata alla pagina di Zack relativa a Gimp News per ulteriori informazioni su quanto appena detto.

Ovviamente c'è ancora qualcosa da mettere a punto, come ad esempio il supporto ad una maggiore quantità di modelli di colore.  Questo aspetto, lungamente discusso sulla lista degli sviluppatori, sembra abbia trovato, però, poche persone disposte a lavorarci e forse verrà risolto soltanto con la versione 1.2. 
Ah già, quasi dimenticavo! Il Gimp avrà un modello di numerazione molto simile a quello del kernel Linux, nel senso che numeri pari individueranno versioni pubbliche mentre numeri dispari versioni per sviluppatori. Attualmente la versione 1.0.4 è l'ultima versione pubblica e si sta lavorando alla 1.1. 

D'ora in poi intendo concentrare la mia attenzione ed i miei sforzi sul Gimp.  Il futuro della 'Musa dipenderà da una serie di accordi che sto prendendo con SSC relativamente ad un altro progetto, anche se per il momento siamo ancora agli inizi. In ogni caso intendo lavorare a qualche plug-in ed alla realizzazione di script.  Ora che è uscita la versione 1.0 non ho più alibi o scuse da accampare reativamente alla mancanza di una versione stabile.
Intendo anche prendere parte più attiva nella mailing list degli utenti Gimp fornendo un po' di supporto.  Adesso che c'è la versione 1.0 è ora che la comunità degli utenti mostri che cosa si può fare con questo pacchetto.
 
Per di più forse disponiamo di un'altra

 
Resources
I riferimenti che seguono rappresentano esclusivamente il punto di partenza per l'acquisizione di ulteriori informazioni sulla computer grafica e, più in generale, sulla multimedialiltà, per sistemi Linux.  Se disponete di informazioni specifiche su qualche applicazione e me ne mettete al corrente le aggiungerò alle mie pagine o, se lo preferite, potrete contattare qualche altro amministratore di siti web e prendere accordi con lui.  Prenderò in considerazione la possibilità di aggiungere qualche altro riferimento di carattere generale qui di seguito, ma informazioni spedifiche su applicazioni o siti troveranno migliore collocazione nei riferimenti di carattere generale riportati di seguito piuttosto che qui.
 
Periodici Online e fonti di novità 
C|Net Tech News 
Linux Weekly News 
Slashdot.org 

Siti Web di carattere generales 
mini-Howto della grafica per Linux 
Programmi grafici in Unix 
La pagina della multimedialità per Linux 

Alcune delle Mailing List e dei Newsgroup che tengo sotto controllo e dai quali traggo la maggior parte delle informazioni che riporto qui 
Le liste degli utenti e sviluppatori Gimp
La lista di discussione dell'IRTC-L 
comp.graphics.rendering.raytracing 
comp.graphics.rendering.renderman 
comp.graphics.api.opengl 
comp.os.linux.announce 

Sviluppi Futuri

Per il prossimo mese:
Come al solito non so ancora con esattezza di cosa andrò ad occuparmi. Di certo c'è che il progetto più importante nel quale sono impegnato è la riscrittura del mio sito web: graphics-muse.org, per cui c'è da aspettarsi che metterò a punto qualcosa per le Meraviglie del Web.  Ho sentito dire che POV-Ray è arrivato alla versione 3.0 anche se beta. In ogni caso vedremo da che parte tirerà il vento per la fine di agosto.

Non vergognatevi di farmi sapere di cosa volete che mi occupi.


Alla Home Page

Per l'articolo originale: © 1998 Michael J. Hammel - Pubblicato sul n. 31 della Linux Gazette
Per l'edizione italiana: © 1998 A. Cartelli - Pubblicato sul n. 7 anno II di LGEI, a cura di un gruppo di volontari.