Monthly Archives: September 2014

Come salvare un file in Matlab

MATLAB

In questa lezione impareremo come salvare un file in Matlab. Vediamo allora come salvare dei dati in un filedi testo. Si voglia, ad esempio,  salvare i risultati della funzione exp(x) entro l’intervallo (1; 2) con passo 0.1. Si costruisca dapprima il vettore seguente:

x = 1 : 0.1 : 2 ;

e quindi si valuta una matrice A nel modo seguente:

A = [ x ;exp(x) ];

Decidiamo che il nome esterno del file su cui si vuole salvare la matrice A sia file.txt ; esso dovrà essere posto all’interno di apici perchè si tratta di una stringa. Apriamo il file in scrittura con il parametro ’wt’ assegnandogli il nome interno nomefile. L’istruzione è la seguente:

nomefile = fopen ( ’file.txt’ , ’wt’);

In questo modo si deposita nel file nomefile la matrice A, scrivendo le due colonne di numeri decimali:

  1. la prima colonna con 6 cifre di cui 2 decimali
  2. la seconda colonna 8 cifre di cui 4 decimali.

matlab

Attraverso il comando  fprintf, che rappresenta un acronimo di file print formatted, saremo in grado di stampare a video quanto contenuto nel file appena creato.

fprintf ( nomefile , ’%6.2g %8.4g\n’ , A);

Si noti che per primo si mette il nome interno nomefile, per secondo si mette il formato per terzo si mette la matrice A.

Quindi si chiude il file con il comando:

fclose (nomefile);

Se si vuole analizzare il file così creato lo si può fare con un editor di testo qualsiasi, in questo modo potremo verificare che l’operazioen attraverso la quale abbiamo salvato un file in Matlab è riuscita correttamente.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come installare ActivePython

python

Vediamo allora come installare ActivePython che ci occorre per procedere con la programmazione in ambiente Python; per scaricare il pacchetto basterà collegarsi al sito della ActiveState disponibile al seguente url:

 http://www.activestate.com/activepython/

Dopo una schermata introduttiva nella quale vengono presentate le caratteristiche del pacchetto e dove reperire idonea documentazione, nella parte bassa della finestra sarà possibile scegliere la distribuzione compatibile con la nostra macchina, selezionandola in una lista davvero ricca che annovera le seguenti distribuzioni:

  • •           Windows x86
  • •           Linux x86
  • •           Linux x86_64
  • •           Mac OS X (Universal)
  • •           Solaris 8 SPARC
  • •           Solaris 8 SPARC (64-bit)
  • •           Solaris 10 x86
  • •           AIX PowerPC
  • •           HP-UX PA-RISC

python

Una volta scelta la piattaforma relativa alla nostra macchina cliccando sul relativo link partirà il download, alla fine del quale potremo trovare il file ActivePython-3.1.2.3-win32-x86.msi sul nostro hard disk. A questo punto basterà cliccare due volte sul file, per attivare la procedura di installazione che risulterà totalmente automatizzata, ci dovremo semplicemente limitare ad assistere da spettatori se non seguire le istruzioni dell’installer.

Se disponiamo di poco spazio sull’hard disk, potremo effettuare un’installazione personalizzata ed escludere la documentazione, ma non risulta particolarmente  raccomandabile a meno che non siate già dei guru del linguaggio e quindi non abbiate bisogno di un aiuto. Una volta completata l’installazione, chiuderemo l’installer ed apriremo l’interfaccia dell’interprete Python attraverso il seguente percorso:

 Start->Programs->ActiveState ActivePython 3.01.->PythonWin IDE

Da questo momento potremo iniziare ad interagire con l’ambiente integrato appena installato avendo potuto verificare come installare ActivePython.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Installazione di Python su Windows

python

Il linguaggio Python supporta il sistema operativo Windows, anzi le performance che manifesta sono a dir poco eccellenti, anche se il sistema nativo del Python è come sappiamo Linux.

Di seguito analizzeremo le procedure di installazione di Python su Windows, analizzando in particolare la procedura dettagliata relativa ad una macchina amd con sistema operativo Windows. Si è deciso di procedere con questa simulazione in quanto su macchine Linux il pacchetto Python è di solito già presente; semmai sarà necessario solo procedere ad un aggiornamento alla versione più recente.

Ci sono essenzialmente due modi per installare Python, entrambi risultano piuttosto veloci e sfruttano la possibilità che offrono tutti gli applicativi Windows di utilizzare delle procedure di installazione automatizzate, i cosiddetti installer, attraverso i quali la fase di installazione del software si riduce da parte dell’utente alla necessità di dover cliccare, una serie di volte su dei bottoni con la scritta avanti.

python

In questo caso la cosa risulta particolarmente vantaggiosa in quanto con un solo file si riesce ad installare tutto il software necessario per poter essere immediatamente operativi.

Nel primo metodo utilizzeremo il pacchetto distribuito dalla ActiveState denominato ActivePython che produce un’installazione Windows per Python che comprende una versione completa di Python, un IDE (integrated development environment, in italiano ambiente integrato di sviluppo che aiuta i programmatori nello sviluppo del software), con un editor capace di riconoscere codice Python e quindi di evidenziare i token, più alcune estensioni di Windows per Python che consentono un accesso completo ai servizi specifici di Windows, alle sue API ed al suo registro.

ActivePython è liberamente scaricabile, tuttavia non è open source. Rappresenta un ottimo pacchetto completo che ci permette di accedere all’interprete in modo agevole e senza difficoltà; l’unica nota di demerito può essere rappresentata dal fatto che l’installer di ActivePython di solito risulta essere indietro di alcuni mesi nell’aggiornamento rispetto ai rilasci delle nuove versioni di Python.

Per il secondo metodo invece utilizzeremo il pacchetto disponibile sul sito ufficiale del linguaggio già segnalato in precedenza; anche in questo caso utilizzeremo un installer che sarà in grado di installare sulla nostra macchina sia l’interprete che la Python Gui.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Il software Python

python

Vediamo innanzitutto dove reperire il software Python da installare sulla nostra macchina per poter iniziare a programmare con Python. I pacchetti che dovremo installare sono disponibili sul sito ufficiale del linguaggio al seguente url:

http://www.python.org/

Naturalmente prima di scaricare le versioni del software dovremo informarci sul tipo di macchina a nostra disposizione e sul sistema operativo su di essa installato. Ricordiamo però che Python è disponibile praticamente per tutti i sistemi operativi in circolazione.

L’interprete Python consentirà la traduzione del nostro codice Python in un linguaggio comprensibile al nostro computer e che gli permetterà di eseguire le istruzioni in esso contenute. Nel periodo di stesura di questo libro, la versione corrente dell’inteprete Python è la 3.1.2 che rappresenta quella stabile ed è per questo che negli esempi  che ci accompagneranno nei capitoli successivi ci riferiremo a tale versione.

python

Possiamo tranquillamente scaricare il software Python dalla rete, in quanto la programmazione con Python è tutta open source e quindi liberamente scaricabile da internet dove possiamo trovare dei siti che oltre a fornire procedure dettagliate per il download della versione corrente del software forniscono anche una soddisfacente documentazione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

La portabilità di Python

python

Una caratteristica che ha determinato il successo di Python nel panorama mondiale della programmazione è stata la sua estrema portabilità; esistono versioni di Python per piattaforma Linux (suo ambiente naturale visto che qui è stato sviluppato), per sistemi operativi Unix-like, Mac OS, e Windows in tutte le sue versioni.

La versatilità di Python si manifesta nella sua interezza nel momento che esiste una versione di Python anche per l’obsoleto sistema operativo con interfaccia orientata ai caratteri MS-DOS.

python

Ma lo sviluppo di Python non si ferma alle piattaforme appena viste ma si estende a quelle che oggi vengono diffusamente utilizzate per la programmazione dei cellulari, di navigatori satellitari e quant’altro. Infine, ma non per ultimo, Python può essere utilizzato su Java e nella .NET virtual machines.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

La sintassi di Python

python

La sintassi di Python lo rende perfetto per la costruzione di semplici DSL da utilizzare all’interno della propria applicazione, grazie alla sua sintassi ed alle sue funzionalità di metaprogrammazione.

Abbiamo già specificato che Python è totalmente Object Oriented, questo si traduce nel fatto che in Python tutto è un oggetto. In tale aspetto riesce a surclassare il linguaggio ad oggetti per eccellenza e cioè Java in quanto in Python non esiste nessuna distinzione tra tipi base e oggetti, allo stesso tempo la programmazione orientata agli oggetti in Python non risulta ne invasiva ne fastidiosa, e ciò è dovuto alla sua maggior purezza.

Una caratteristica particolarmente gradita dai programmatori Python è stata la possibilità di utilizzare i cosiddetti blocchi che rappresentano una feature non comune nei linguaggi più diffusi e che permettono di rappresentare diversi problemi, anche molto diversi tra loro, con modalità chiare e significative.

python

Il Python risulta amato, allo stesso modo, dai programmatori professionisti che ne apprezzano le caratteristiche più avanzate, e dai principianti in quanto si presenta particolarmente adatto ad essere imparato come primo linguaggio.

Infatti grazie alla sua semplicità, è possibile apprendere le nozioni di base della programmazione, senza doversi preoccupare di innumerevoli convenzioni e aspetti non strettamente legati alla realizzazione degli algoritmi numerici.

Inoltre Python si presenta efficacemente espressivo in quanto fornisce molte strutture dati e tipi built-in ( i tipi built-in rappresentano dei tipi già definiti all’interno del linguaggio); esempi sono:

  • dict,
  • liste,
  • regexp,
  • numeri interi di dimensione arbitraria.

La sintassi di Python fa si che le classi presentino un’interfaccia molto dettagliata, che determina una semplicità nell’utilizzo nelle operazioni comuni.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Le caratteristiche peculiari di Python

python

Le caratteristiche peculiari di Python lo rendono un linguaggio di programmazione soprattutto semplice, il suo utilizzo si apprende in pochi giorni, senza presentare grosse difficoltà grazie ad una sintassi snella e davvero pratica; in aggiunta presentando a corredo un numero davvero corposo di librerie incluse nella distribuzione ed integrabili con quelle installabili, si rende possibile, come già anticipato  realizzare i nostri programmi in brevissimo tempo.

Python si presenta particolarmente dinamico, un esempio è fornito dal fatto che le variabili possono essere tranquillamente utilizzate senza la necessità di dichiararne il tipo, sarà allora l’interprete in grado di identificarle; tutto questo però senza perdere in precisione in quanto le operazioni non consentite tra tipi diversi provocheranno un errore, cioè non potrà mai accadere, in modo più o meno nascosto, che un valore di un certo tipo venga utilizzato come se fosse di tipo diverso (strong typing).

Grazie a questo un operazione del tipo 1+”2″ (somma di un numero e di una stringa) determinerà un errore di runtime, diversamente da linguaggi come php o perl che invece non permettono un controllo analogo.

python

In Python è possibile manipolare le classi ed i metodi a runtime, cioè possono essere aggiunti, cancellati o modificati. In questo modo molte delle cose che negli altri linguaggi rappresentano delle strutture complesse possono in Python costituire dei semplici metodi; è altresì possibile aggiungere classi e metodi personalizzati, creando dei Domain Specific Language (DSL). Un Domain Specific Language è un minilinguaggio adatto ad uno specifico problema, l’ideale sarebbe avere un linguaggio per ogni scopo, ma senza il problema di doverlo ogni volta imparare da zero.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Le origini del linguaggio Python

python

Lo sviluppo di Python inizia nel 1989 al National Research Institute for Mathematics and Computer Science (CWI) di Amsterdam ad opera di Guido Van Rossum, che vi lavora come ricercatore. L’idea è quella di implementare in maniera più efficiente i concetti alla base di ABC (All Basic Code), un linguaggio di programmazione pensato per essere facilmente appreso e utilizzato da persone che non avessero alcuna esperienza o conoscenza di progettazione e sviluppo software. Le origini del linguaggio Python nascono dall’esigenza del gruppo di lavoro cui Van Rossum partecipava, di avere a disposizione un linguaggio di scripting per Amoeba, un prototipo di sistema operativo distribuito al quale stavano lavorando.

C’è da precisare che il nome che Van Rossum attribuì al linguaggio non ha niente a che vedere con il rettile che tanto terrore ha disseminato sulla terra. Il nome fu il frutto di un’intera nottata a pensare ad un nome che fosse corto, unico e originale; alla fine fu evidentemente ispirato da una serie televisiva che la BBC trasmetteva agli inizi degli anni 70 “ The Monty Python’s Flying Circus ”.

Sulla nascita del linguaggio l’autore tiene a precisare: “ nel dicembre del 1989, ero alla ricerca di un progetto di programmazione per tenermi occupato durante le vacanze natalizie. Il mio ufficio… sarebbe stato chiuso, e non avrei avuto altro tra le mani che il mio computer di casa. Allora decisi di scrivere un interprete per il nuovo linguaggio di scripting che avevo in mente di recente un discendente del linguaggio ABC ”.

python

Van Rossum cominciò realizzando un semplice parser e una semplice macchina virtuale, riciclando le parti migliori di ABC. La prima release del linguaggio fu resa pubblica nel Febbraio del 1991 e, per un lungo periodo, lo sviluppo di Python è stato eseguito nei laboratori del CNRI a Reston negli Stati Uniti.

Nel giugno del 2000, il team di sviluppo di Python si trasferisce a PythonLabs, una organizzazione facente parte del network BeOpen, con il compito di sviluppare il linguaggio Python. Tale team annoverava tra gli sviluppatori anche il suo ideatore Guido Van Rossum. Il 27 ottobre 2000 l’intero PythonLabs Team ha lasciato BeOpen.com a causa di alcuni disaccordi reciproci in merito al futuro di Python.

Il team ha lavorato per Digital Creations creando il framework Zope e Guido Van Rossum ha creato una organizzazione non-profit chiamata Python Software Foundation (PSF), al fine di curare gli sviluppi futuri di Python. In questa lezione abbiamo approfondito le origini del linguaggio Python.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Installazione di Ruby on Rails su Windows

Guida alla programmazione con Ruby

In informatica, l’installazione è la procedura di copia sulla macchina e di configurazione di un software. Generalmente il software viene distribuito sotto forma di pacchetto di file compressi che comprende un’interfaccia che ne facilita e automatizza l’installazione (installer).

L’installazione crea delle cartelle sul disco dove sono contenuti tutti i file utilizzati per la configurazione del programma, i collegamenti per facilitarne l’esecuzione e scrive i necessari parametri di configurazione.

Sia Ruby che il framework Rails supportano il sistema operativo Windows, anzi le performance che manifestano sono a dir poco eccellenti, anche se il sistema nativo del Ruby è come sappiamo Linux. Inoltre il fatto che Rails contenga al suo interno un Web server integrato ci permette di iniziare a lavorare da subito con il framework senza avvertire la necessità di installare sistemi importanti quali Apache.

Ci sono essenzialmente due modi per installare Rails: il primo è piuttosto veloce e sfrutta la possibilità che offrono tutti gli applicativi Windows di utilizzare delle procedure di installazione automatizzate, i cosiddetti installer, attraverso i quali la fase di installazione del software si riduce da parte dell’utente alla necessità di dover cliccare, una serie di volte su dei bottoni con la scritta avanti. In questo caso la cosa risulta particolarmente vantaggiosa in quanto con un solo file si riesce ad installare tutto il software necessario per poter essere immediatamente operativi.

installare ruby

Il secondo metodo, leggermente più complesso, richiede che siano installati i componenti software separatamente; in questo modo il tempo perso per eseguire tutte le procedure, che comunque sfrutteranno gli installer, sarà compensato dalla possibilità di personalizzare l’installazione e di assumere una maggiore controllo su quello che viene aggiunto sul nostro computer.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il software per programmare in Ruby

Guida alla programmazione con Ruby

Vediamo innanzitutto quale software dobbiamo prima procurarci e quindi installare sulla nostra macchia per poter iniziare a programmare con Ruby on Rails. I pacchetti che dovremo installare sono:

  1. l’interprete Ruby;
  2. il framework Rails;
  3. il database MySQL.

 ruby software

L’interprete Ruby consentirà la traduzione del nostro codice Ruby in un linguaggio comprensibile al nostro computer e che gli permetterà di eseguire le istruzioni in esso contenute. La versione corrente dell’inteprete Ruby è la 1.8.6 che rappresenta quella stabile ed è per questo che negli esempi che ci accompagneranno nei capitoli successivi ci riferiremo a tale versione.

Per poter realizzare poi delle applicazioni web ci serviremo del framework Rails che come già indicato è stato interamente scritto in Ruby; la versione corrente del framework è la 2.0.2 che rappresenta anche quella stabile.

Infine MySQL è un Database management system (DBMS) relazionale, composto da un client con interfaccia a caratteri e un server, entrambi disponibili sia per sistemi Unix come GNU/Linux che per Windows. Dal 1996 supporta la maggior parte della sintassi SQL e si prevede in futuro il pieno rispetto dello standard ANSI. Possiede delle interfacce per diversi linguaggi, compreso un driver ODBC, due driver Java e un driver per Mono e .NET.

Il codice di MySQL viene sviluppato fin dal 1979 dalla ditta TcX ataconsult, adesso MySQLAB, ma è solo dal 1996 che viene distribuita una versione che supporta SQL, prendendo spunto dal prodotto mSQL. Il codice di MySQL è di proprietà della omonima società, viene però distribuito con la licenza GNU GPL oltre che con una licenza commerciale.

Fino alla versione 4.0, una buona parte del codice del client era licenziato con la GNU LGPL e poteva dunque essere utilizzato per applicazioni commerciali. Dalla versione 4.1 in poi, anche il codice dei client è distribuito sotto GNU GPL. Esiste peraltro una clausola estensiva che consente l’utilizzo di MySQL con una vasta gamma di licenze libere.

In tutti e tre i casi possiamo tranquillamente scaricare il software dalla rete, in quanto la programmazione con Ruby on Rails è tutta open sources e quindi liberamente scaricabile su internet dove possiamo trovare dei siti che oltre a fornire procedure dettagliate per il download della versione corrente del software forniscono anche una soddisfacente documentazione.

Naturalmente prima di scaricare le versioni del software dovremo informarci sul tipo di macchina a nostra disposizione e sul sistema operativo su di essa installato. Ricordiamo però che Ruby è disponibile praticamente per tutti i sistemi operativi in circolazione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Lo sviluppo del framework Rails

Guida alla programmazione con Ruby

Rails è stato sviluppato sulla base dei risultati conseguiti da piattaforme già presenti sul mercato e testate lungamente dagli sviluppatori; si può dire che Rails nasce dall’esigenza di trovare delle soluzioni ai problemi maggiormente riscontrati nell’utilizzo di tali strumenti.

In definitiva diventa una piattaforma indipendente dopo aver affrontato dei problemi reali ed ottenuto delle soluzioni pratiche.

Il legame che esiste tra Rails ed il linguaggio con il quale è stato scritto, cioè Ruby, che come abbiamo visto rappresenta un linguaggio completamente ad oggetti espressivo e potente, risulta praticamente indissolubile, motivo per cui l’utilizzo del framwork Rails con altri linguaggi non ha motivo di esistere.

Lo sviluppo di Rails è stato condotto seguendo in maniera rigida l’architettura MVC (Model-View-Controller) con questo si vuole specificare che un’applicazione web creata attraverso l’utilizzo del framework si basa essenzialmente su tre oggetti:

  • Model
  • View
  • Controller

Vediamo allora di spiegare cosa rappresentano analizzandoli nel dettaglio.

framework rails

Nelle applicazioni web costruite su questa architettura il modello (Model) si compone di classi che possono essere paragonate alle classiche tabelle caratteristi-che dei database. Tali classi derivano da un software chiamato ActiveRecord che dalle tabelle di un database permette di creare degli oggetti; tali oggetti ci consen-tono poi di manipolare i dati senza la necessità di utilizzare codice SQL.

In questo modo il software ActiveRecord rende la maggior parte delle funzioni indispensabili automatiche, e quindi il collegamento ad un database o le relazioni tra le tabelle, divengono semplici utilizzando delle dichiarazioni contenute all’interno del model-lo.

L’oggetto View rappresenta la vista con la quale i dati, acquisiti dal database, vengono presentati all’utilizzatore, nel caso di un’applicazione web sotto forma di pagine html. Attraverso Rails è possibile utilizzare gli stessi oggetti, in diverse pa-gine, come ad esempio menu, banner, costruendo dei template contenenti quindi frammenti di codice richiamati da oggetti.

L’oggetto Controller infine replica agli input forniti dall’utilizzatore, quindi manipola i dati acquisiti attraverso l’oggetto Model e li rende visibili attraverso l’oggetto View. Tale operazione è resa possibile grazie all’utilizzo del browser. Il controller deriva da un software chiamato ActionPack, attraverso il quale vengono forniti i metodi richiesti del browser.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: