[immagine di un Brave GNU World]
Brave GNU World - Numero 49
Copyright © 2003 Georg C. F. Greve <greve@gnu.org>
Traduzione italiana a cura di Giovanni Biscuolo <giovanni.biscuolo@milug.org>
Autorizzazione alla riproduzione sotto.

[CA | CN | DE | EN | IT | ZH]

Benvenuti ad un altro numero di Brave GNU World. Voglio scusarmi per la mancata pubblicazione del mese scorso, sfortunatamente ci sono stati dei problemi tra il Linux-Magazin tedesco e Brave GNU World per via del taglio di una parte del numero 48 [5] ("Software Libero per i portatili").

Questo ha portato ad alcuni scambi non molto piacevoli, ma dopo intense discussioni queste cose possono essere archiviate e non succederanno di nuovo.

Skidbladnir

Il primo articolo di questo mese riguarda il progetto Skidbladnir [6], il cui nome potrebbe essere per qualcuno tanto misterioso quanto la sua descrizione. L'autore, Lars Brand, lo descrive come una "cassetta degli attrezzi con informazioni e programmi per l'Innovazione Assistita da Calcolatore."

Le basi di tutto ciò saranno probabilmente sconosciute ma interessanti per la maggior parte dei lettori; e poichè Lars si è sforzato di fornircele, non dovrebbero essere omesse.

La base scientifica di Skidbladnir è conosciuta come "Teoria della Risoluzione Inventiva dei Problemi"; in inglese abbreviata in TIPS, in tedesco ed in russo conosciuta come TRIZ. La teoria ha origine nel 1946 dal Prof. Altschuller, che allo stesso tempo era un ingegnere per i brevetti nell'esercito.

Quando il Prof. Altschuller inviò una lettera a Stalin, informandolo dell'inizio della sua teoria, egli venne immediatamente imprigionato e mandato ai lavori forzati per attività sospetta. Durante la sua progionia incontrò diversi professori di differenti aree scientifiche, che lo aiutarono combinando la conoscenza di molte differenti discipline.

Rilasciato dal campo e divenuto di nuovo indesiderato attorno alla fine degli anni 60 fino alla metà degli anni 70, cominciò a pubblicare i propri risultati sotto forma di romanzi fantasciantifici per poter raccogliere fondi per il proprio lavoro scientifico — si veda G. S. Altow: "Der Hafen der steinernen Stürme" ("Il porto della tempesta di pietra"). (Commento: non sono riuscito trovare come è intitolato il libro in inglese o se il libro è stato tradotto in inglese; ogni aiuto è apprezzato).

La teoria TIPS è basata sul principio che indipendentemente dalla disciplina scientifica o dal settore industriale, i problemi astratti e le loro soluzioni solitamente si ripetono. Quando vennero analizzati oltre 40.000 brevetti di enorme successo, si scoprì che tutti questi erano basati su circa 40 principi solamente.

Un'altro principio base di questa teoria è che l'evoluzione tecnica segue determinate tendenze e che innovazioni essenziali spesso richiedono un flusso di risultati scientifici provenienti da un altro settore.

Il risultato di tutto ciò è una astrazione delle strategie di soluzione dei problemi; un esempio spesso utilizzato è: "Un pesante cubo di acciaio di 1m di lato deve essere posto in una profonda cavità senza utilizzare gru, corde o simili attrezzi. Inoltre non deve essere gettato. Trovate 3 soluzioni appropriate in 10 minuti."

Il progetto più conusciuto per risolvere questo ed altri problemi attraverso il software è probabilmente il TechOptimizer, che — come tutte le altre applicazioni in questo campo — è proprietario e molto costoso.

Skidbladnir ora cerca di fornire questa funzionalità come Software Libero. Assieme ai componenti per l'installazione, il progetto consiste in andax, che contiene i principi base per risolvere le contraddizioni tecniche, sporadikus per il brainstorming via web e perplexus, nel quale sono disponibili più di 250 effetti.

Il progetto non è completo e nemmeno molto comodo da usare per ora. Inoltre il database degli effetti non è abbastanza grande come vorrebbe Lars — specialmente la rete degli effetti, che consente combinazioni molto efficienti, dovrebbe essere ampliata.

Quanto segue costituisce un esempio molto semplice: 1. il materiale luminescente converte la luve UV in luce visibile; 2. le particelle di metallo inibiscono la luminescenza; 3. prima che una parte mobile di un motore si rompa, rilascia piccoli frammenti di metallo nell'olio. Combinare questi tre fatti ci porta facilmante all'idea che aggiungere materiale luminescente all'olio consentirà di determinare quando certe parti di un macchinario devono essere sostituite prima che si rompano, poichè cesserà la luminescenza dell'olio.

Le situazioni reali sono spesso molto più complesse e richiedono un grosso database di effetti che deve essere messo assieme partendo dalla lettereatura tecnica, che è un lavoro duro e noioso.

Skidbladnir è stato scritto in Perl, PHP e MySQL ed è pubblicato nei termini della Licenza Pubblica Generica GNU (GNU GPL). In confronto ai progetti proprietari Skidbladnir ha pochi effetti ma già contiene effetti software, probabilmente i primi di questo tipo.

È particolarmente apprezzato l'aiuto in qualsiasi forma; specialmente le impressioni da parte di sviluppatori ed utenti. Inoltre sono apprezzati ulteriori dati sugli effetti e su casi reali.

Nel medio e lungo termine, Lars è convinto che il Software Libero avrà uno straordinario successo in questo settore, poichè sia TIPS che il Software Libero sono basati sull'idea di preservare e rendere accessibile la conoscenza.

Rendere disponibili a tutti queste conoscenze e metodi sembra un progetto molto importante, non molto diverso da una enciclopedia, che merita supporto.

Quale effetto collaterale vi è anche una riduzione della barriera di ingresso in questo settore di mercato, poichè molti utenti potenziali non possono permettersi di utilizzare soluzioni proprietarie, e questo potrebbe aiutare a rivitalizzare il settore tecnico.

Chiunque fosse interessato e le persone del settore sono incoraggiati a dare un'occhiata. Ulteriori informazioni sulle basi scientifiche sono disponibili sul web. [7]

Lush

Il secondo progetto presentato in questo numero è ancor più orientato alla scienza, sebbene non si limiti a questa. Lush [8] è un linguaggio di programmazione orientato agli oggetti pensato prevalentemente per gli scienziati, i ricercatori e gli ingegneri che necessitano di grosse applicazioni numeriche e grafiche.

La progettazione di Lush intende combinare i punti di fornza di tre differenti approcci di linguaggi di programmazione in uno solo. In effetti Lush stà trasformando tre linguaggi di programmazione in uno solo. Il primo è un linguaggio interpretato tipo LISP con "garbage collection" automatica e una tipizzazione "debole". Il secondo linguaggio è un linguaggio lessicale compilato che utilizza la stessa sintassi, ma con una tipizzazione forte. Infine il terzo è il C, che può essere mischiato con la sintassi Lush all'interno di un programma o persino di una funzione.

Lush viene sviluppato sin dal 1987; originariamente con il nome di "SN" come linguaggio di scripting per la simulazione di reti neurali e — nel tempo — è divenuto un linguaggio di programmazione completo con tanto di compilatore. Lo sviluppo è stato svolto principalmente da Bell Labs (divenuta poi "AT&T Labs") di Holmdel (NJ, USA); Neuristique S.A. di Parigi (Francia) e NEC Labs di Princeton (NJ, USA).

Dopo anni di utilizzo di Lush/SN all'interno di AT&T per i loro progetti di ricerca e sviluppo interni, le parti coinvolte si misero d'accordo sulla Licenza Pubblica Generica GNU (GNU GPL) e pubblicarono Lush come Software Libero.

Oggi il progetto è mantenuto da Yann LeCun — che ha risposto al questionario di Brave GNU World — e Leon Bottou di "NEC Labs America" di Princeton, i quali sono supportati da un gran numero di volontari di tutto il mondo, per esempio Fu Jie Hang, Patrice Simard, Patrick Haffner, Yoshua Bengio, Pascal Vincent, Jean Bourrelly, Xavier Drancourt o Secil Ugurel, per nominarne alcuni. Altri volontari sono sempre i benvenuti.

Sebbene sia stato sviluppato principalmente come Software Libero alternativo a Matlab per gli scienziati, i ricercatori e gli studenti, Lush offre un linguiaggio completo adatto a tutti gli scopi. Grazie alla semplice integrazione col C, Lush è un'ottima scelta per gli script o l'integrazione finalizzata a riunire funzionalità distribuite in una comoda GUI.

Questa integrazione rende anche abbastanza semplice integrare librerie esistenti, motivo per il quale Lush ha bindings a numerose librerie scientifiche, grafiche e audiovisive, come la Libreria Scientifica GNU (GNU GSL, si veda il numero 35 [9]), OpenGL/GLU/GLUT, ALSA, Video4Linux o la Intel Vision Library.

Quando confrontiamo il livello di supporto per la GSL tra Python e Lush, Lush ne esce piuttosto bene con circa 4000 funzioni supportate contro le poche centinaia supportate oggi da Python. La sintassi è più pulita rispetto a Perl e dovrebbe essere più semplice da imparare rispetto a Scheme. Se poi confrontiamo la velocità con Octave o Matlab, è tra 15 e 300 volte più veloce a seconda dalle situazioni.

Questi vantaggi rendono Lush una scelta interessante e vale senz'altro la pena darvi un'occhiata. Lush è già stato utilizzato per i giochi, come il semplice modulo di atterraggio lunare di cui potete trovare lo screenshot nella pagina principale di Lush.

Lush è scritto in C e tradizionalmente funziona su GNU/Linux, Solaris, Irix ed OpenBSD, sebbene dal Febbraio 2003 è disponibile un port su Cygwin Windows.

Uno dei problemi del progetto è che la progettazione del compilatore risale a più di 10 anni fa e per questo ha alcune rigide e strane limitazioni. La riscrittura del complilatore è nella lista delle cose da fare.

Nella lista ci sono anche il supporto a più librerie ed il miglioramento del sistema di documentazione. Nel medio termine eà in progetto anche l'aggiunta di un meccanismo di templating in Lush.

In aggiunta, c'è un sacco di interesse nel porting a Mac OS-X, per il quale si cercano volontari. Anche un parser automatico dei file header C/C++ per l'inclusione automatica in Lush sarebbe un progetto piuttosto interessante.

Se vivete negli Stati Uniti, avete una buona probabilità di essere già entrati in contatto indirettamente con Lush. Alcuni ATM della NCR utilizzano codice generato da Lush su processori DSP embedded per leggere automaticamente l'ammontare degli assegni depositati; ed un motore ultraveloce di lettura scritto in Lush già legge circa il 10% di tutti gli assegni depositati in USA.

jMax

Come dovrebbero già sapere i lettori abituali di Brave GNU World, la Free Software Foundation Europe è coinvolta nel progetto AGNULA [10], mirato a creare una distribuzione GNU/Linux interamente basata su Software Libero per utenti professionisti nel campo audio.

Un altro ente coinvolto nel progetto AGNULA è l'"Institut de Recherche et Coordination Acoustique/Musique" (IRCAM) — il centro musicale del Centro Pompidou di Parigi, Francia. Una delle applicazioni scritte da IRCAM è jMax [11], un ambiente grafico di sviluppo per applicazioni multimediali interattive.

Le applicazioni audio tradizionalmente hanno il problema di essere scritte per hardware specifico e per tanto di essere molto dipendenti dalla piattaforma. A causa del rapido sviluppo hardware, i programmi dovevano essere riscritti ogni tre anni per una nuova piattaforma, altrimenti la musica scritta per quei programmi correva il rischio di essere perduta.

Questa è stata la spinta per lo sviluppo di una soluzione basata puramente sul software che non fosse dipendente ad una specifica piattaforma.

Il paradigma utilizzato anche in jMax consente di creare combinando assieme determinati elementi base come generatori di frequenza, filtri di segnali, effetti, moduli di input ed output, cursori, processori di segnale, amplificatori ed assemblandoli nei cosiddetti "patches".

Questi patch integrano i loro componenti e possono essere combinati in modo quasi infinitamente complesso, rendendo possibile implementare qualsiasi tipo di elaborazione di segnale, effetto o sintetizzatore.

Una implementazione di questo paradigma è il programma proprietario "Max" ben noto tra i musicisti. Nel 1995 iniziè lo sviluppo di jMax con l'intenzione di creare una versione indipendente dalla piattaforma di Max. Nella metà del 1999 venne pubblicato come Software Libero nei termini della Licenza Pubblica Generica GNU (GNU GPL).

Il gruppo IRCAM che lavora al progetto jMax consiste principalmente in François Déchelle e Patrice Tisserand. François, che ha anche compilato il questionario di Brave GNU World, pensa che i principali vantaggi di jMax siano principalmente l'indipendenza dalla piattaforma — funziona su GNU/Linux, Mac OS-X e Windows — e una maggiore flessibilità quando confrontato con altre implementazioni dello stesso paradigma, come Max o PD.

Ono dei vantaggi chiave è anche che jMax è costituito da due componenti. Il componente centrale è un server, un motore real-time scritto in C, che esegue tutto il lavoro. Questo consente di eseguire il motore con la propria GUI, scrivere GUI alternative o integrare il motore in un ambiente a plugin (LADSPA).

Normalmente questo server è controllato attraverso un client scritto in Java. Java venne scelto per essere sicuri che il client funzionasse su più piattaforme possibili con il minor numero di problemi. Sfortunatamente la situazione di Java non è priva di problemi in relazione al Software Libero.

Le dipendenze di Java

Il problema di Java non sono le sue specifiche tecniche o l'implementazione; sebbene qualche persona abbia differenti opinioni su questo, esse non sono la causa dei problemi per il Software Libero.

La causa dei problemi è come Java stesso è sviluppato e distribuito, poichè ci sono essenzialmente solo due implementazioni diffuse, entrambe proprietarie: una è mantenuta da Sun, l'altra da IBM. Sebbene queste possano essere distribuite senza costi di licenza, non offrono le libertà necessarie per essere Software Libero.

Di conseguenza ogni applicazione che funziona su queste piattaforme — anche il software rilasciato con una licenza per Software Libero — mette a rischio la libertà degli utenti. Una situazione non molto diversa dal Software Libero che funziona su Windows.

Ci sono alcuni approcci ed iniziative per implementare Java interamente come Software Libero (si veda "GNU and the Java language" [12]); ma poichè le implementazioni dominanti di riferimento sono proprietarie, i progetti liberi devono sempre reimplementare ciò che è contenuto nel'ultima versione di quelle proprietarie.

Non a tutti gli sviluppatori piace partecipare ad una simile gara che non può essere vinta. Il Software Libero è messo in condizioni di svantaggio e perciò offre funzionalità inferiori.

Quando gli sviluppatori di applicazioni Java fanno uso delle funzioni più avanzate delle implementazioni Java proprietarie, le loro applicazioni solitamente non possono più funzionare su implementazioni libere di Java e di conseguenza sono dipendenti dalle piattaforme proprietarie. Una situazione per nulla diversa dal Software Libero che funziona solo su Windows e che non può essere utilizzata su qualsiasi sistema operativo libero.

Questo è esattamente il problema con il client jMax, e poichè includere software proprietario in AGNULA è fuori discussione per tutti i partecipanti al progetto, AGNULA potrebbe non essere in grado di includere jMax con una GUI pienamente funzionante.

pyMax

Dopo che tutte le alternative non sembravano molto promettenti per risolvere il problema in tempo — sono disponibili maggiori informazioni nella pagina principale di FSF Europe [13] — è stato deciso di lasciar perdere Java e reimplementare il client in Python.

La scelta di Python è stata influenzata dalla sua indipendenza dalla piattaforma, comparabile a Java, dal fatto che consente uno sviluppo rapido e contemporaneamente (naturalmente) è interamente Software Libero.

Non è chiaro se IRCAM sarà in grado di finire quel client per tempo, comunque. Perciò stanno cercando volontari che possano aiutarli a scrivere il client Python per jMax.

Stando a François, IRCAM non può fare grosse promesse, ma si impegnano a dare priorità nel fornire supporto alle persone che lavorano al client Python e garantire una risposta entro 24 ore nei giorni lavorativi. Se siete interessati potete dare un'occhiata alla mailing list degli sviluppatori di jMax. [14]

Per ora è tutto.

È abbastanza per questo mese. Se doveste incrociare un progetto interessante, per favore fatemelo sapere. Spesso sono stati i lettori della rubrica a scoprire le perle — il progetto Lush per esempio è stato segnalato da Stefan Kamphausen, l'autore del logo di Brave GNU World.

Come al solito, vi chiedo di inviarmi commenti generali, domande e idee al solito indirizzo. [1]

Info
[1] Inviate idee, commenti e domande (possibilmente in inglese) a Brave GNU World <column@brave-gnu-world.org>
[2] Pagina principale del Progetto GNU http://www.gnu.org/
[3] Pagina principale di Brave GNU World http://brave-gnu-world.org
[4] Iniziativa "Noi usiamo GNU" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.it.html
[5] Numero 48 di Brave GNU World http://brave-gnu-world.org/issue-48.it.html
[6] Pagina Principale di Skidbladnir http://mitglied.lycos.de/altow/
[7] TRIZ online (German) http://www.triz-online.de
[8] Pagina Principale di Lush http://lush.sf.net
[9] Numero 35 di Brave GNU World http://brave-gnu-world.org/issue-35.it.html
[10] Pagina Principale di AGNULA http://www.agnula.org
[11] Pagina Principale di jMax http://www.ircam.fr/jmax/
[12] Pagina Principale di "GNU and Java" http://www.gnu.org/software/java/
[13] Problemi con Java di AGNULA http://fsfeurope.org/projects/agnula/java.html
[14] Lista degli sviluppatori di jMax http://listes.ircam.fr/wws/info/jmax

[ numero precedentre | Pagina principale di Brave GNU World ]

Ritorna alla pagina principale di GNU.

Per informazioni e domande sulla FSF e GNU rivolgersi, possibilmente in lingua inglese, a gnu@gnu.org. Altri modi per contattare la FSF.

Commenti a Brave GNU World di Georg, in inglese o tedesco, a column@gnu.org,
commenti su queste pagine a webmasters@www.gnu.org,
altre domande a gnu@gnu.org.

Copyright (C) 2003 Georg C. F. Greve
Tradotto da Giovanni Biscuolo.

Sono permesse la copia letterale e la distribuzione di questo articolo nella sua integrità, a condizione che siano riprodotti il copyright e questa nota.

Ultima modifica: Fri May 12 13:00:00 CET 2003