Posts RSS Comments RSS 23 Articoli e 6 Commenti fino ad ora

Octave 3.0.0

Dopo molto tempo di assenza, che ha fatto sembrare questo spazio più abbandonato di una città fantasma nel deserto (almeno quella ha le folate di vento e i cespugli secchi che rotolano), l’uscita (non recentissima) di Octave mi dà lo spunto per scribacchiare qualcosa e resuscitare dal torpore in cui i nuovi impegni lavorativi mi avevano fatto sprofondare.

Cosa è Octave?

Octave è:

a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab.

cioé:

un linguaggio ad alto livello, pensato innanzitutto per i calcolo numerico. Dispone di una comoda interfaccia a linea di comando per la soluzione di problemi numerici lineari e non-lineari e per effettuare altri esperimenti numerici, con un linguaggio che è per lo più compatibile con Matlab.

Cosa ha di speciale?

Per quanto mi riguarda, innanzitutto, il fatto di essere compatibile con Matlab e di essere rilasciato sotto licenza GPL. In seconda battuta, ha una serie di toolboxes, molte delle quali (“toolboxes” è femminile, o no?) simili (talvolta compatibili) a quelle a disposizione per Matlab; infine possiede delle sufficienti (ed espandibili) capacità grafiche.

C’è anche, fatto non trascurabile, una vasta ed esauriente documentazione, mantenuta da una comunità di utenti molto attenta e attiva.

Personalmente, l’ho usato da studente per sostenere l’esame di Calcolo Numerico durante i passati anni universitari, poi utilizzato qua e là in qualche altro corso.

Dove sta la magagna?

Già! Octave non è tutto rose-e-fiori!
L’aspetto che trovo più fastidioso è quello di non avere un front-end ben curato e confortevole (come appunto Matlab). Ultimamente persino Scilab sembra stia migrando verso un aspetto più moderno e integrato (si può già avere un assaggio provando scilab-gtk). Octave gira all’interno di una sessione di terminale, usa gnuplot (che è straordinario, anche senza caratteri con l’anti-alias) per generare grafici, e emacs (io lo odio!) oppure vim come editor per gli m-files.

Alcune proposte interessanti per Octave

Dal momento che non tutti, me per primo, appartengono alla chiesa dei duri-e-puri (quelli da sessione di X con 50 terminali aperi da cui controllano anche la politica americana), eccomi a proporre alcuni suggerimenti per migliorare “l’usabilità” (concetto davvero relativo) di Octave.

Proposta 1: creare una cartella all’interno della propria home-directory per contenere gli m-files creati con Octave. Il percorso della directory è obbligato: ho provato a dire al programma di salvare i files in posizioni diverse e di mio gradimento, ma lui sembra costantemente infischiarsene. Perciò:

$ mkdir ~/octave

Proposta 2: creare un file .octaverc all’interno della propria home per fare sapere a Octave di cercare i propri m-files in quella directory. All’interno di questo file si possono inserire tutti gli “octave-comandi” che si vogliono fare mangiare al programma prima dell’avvio della sessione di lavoro. In particolare nel nostro ci sarà:

addpath ('~/octave');

In questo modo si possono richiamare i propri m-files senza dovere essere nella directory ~/octave. Tipicamente il comando edit mfile.m salva un nuovo file nella directory citata, ma la directory di lavoro è quella da cui viene avviata l’applicazione (normalmente la propria home se Octave è avviato facendo click su un icona di menu), perciò suggerisco di aggiungere la nostra bella directory al path.
Proposta 3: emacs mi fa schifo, l’ho già scritto! e vim non è abbastanza molle-e-impuro. Perciò, per chi come me, vuole editare i propri m-files con gedit, lo stratosferico editor di testo predefinito di GNOME, può ricorrere ad un trucchetto. Prima di tutto bisogna creare un file eseguibile in una posizione accessibile, che nel mio caso era /usr/local/bin, ma che può essere qualunque:

$ cd /usr/local/bin
$ sudo touch medit
Parola d'ordine:
$ sudo chmod a+x medit

All’interno del file creato bisogna inserire:

#!/bin/bash

OPTS=$@

/usr/bin/gedit $OPTS &> /dev/null &

exit 0

Ed infine, per istruire Octave ad utilizzare il nostro “nuovo” editor, serve inserire nel file ~/.octaverc la linea:

EDITOR ('/usr/local/bin/medit');

D’ora in poi, il comando edit pippo.m permetterà di editare l’m-file con il miglior editor del mondo.

Oltre le proposte

Per espandere le funzionalità offerte da Octave si può ricorrere a due strumenti esterni: QtOctave, un front-end scritto in QT che sembra avere molte qualità, ma che non ho ancora avuto modo di provare; Octaviz, un’estensione per Octave che permette di usare le librerie VTK per disegni e grafici (trovo Octaviz eccezionale).

Per finire…

vi lascio con un’immagine del mio “desktop running Octave”

Octave 3.0.0

Alla prossima!

One Response to “Octave 3.0.0”

  1. on 31 ott 2008 at 08:02Neil Johnson

    Bravo. Grazie per la discussione di Octave. Ho usato Octave un po’ a scuola ma non ho trovato QtOctave o Octaviz. Ci provaro’! Perdonami l’Italiano. Non la parlo tanto ormai.

Trackback this post | Feed on Comments to this post

Leave a Reply