Recently in Informatica Category

Lo Psion Serie 3 è un computer palmare uscito nei primi anni '90 ormai obsoleto e fuori produzione, ma che tuttavia conserva un suo fascino. Fu uno dei primi palmari ad utilizzare EPOC come sistema operativo e OPL come linguaggio di programmazione. OPL significa Organizer Programming Language oppure Open Programming Language sul quale ho lavorato per diverso tempo, divertendomi.

Psion Serie 3

Il sistema operativo è Epoc, che diventerà il futuro Symbian, un sistema che supporta il multitasking, qualcosa di veramente innovativo per quei tempi dove i PC erano quasi tutti basati su Dos , un sistema poco avvezzo al multitask.

All'epoca, il Serie 3 veniva messo in commercio ad un prezzo che non ha nulla da invidiare ai comuni palmari di oggi, con un prezzo che oscillava dalle 450.000 lire, la versione più economica con 128 K di ram, a circa 600.000 lire la versione con 256 K di ram. Come optional esisteva anche un cavo seriale per il collegamento al PC il cui costo per me era improponibile, infatti costava circa 180.000 lire e non riuscii mai ad acquistarlo per le mie tasche bucate e mi dovetti accontentare del palmare nudo e crudo. Il palmare aveva la potenza di un personal IBM compatibile, come ad esempio il glorioso M24 dell'Olivetti, tutta potenza concentrata nel palmo della mano.

Su quel palmare ci feci un sacco di cose e lo programmai per lo studio grafico delle funzioni tipo y=f(x) e per il calcolo matriciale inserendo formule per risolvere determinanti e operazioni tra matrici, tutto in OPL, linguaggio di programmazione che trovai semplice e intuitivo.

Ti propongo un video che ho fatto in casa per documentare come è possibile risolvere il cubo di Rubik utilizzando i mattoncini lego e un computer specifico orientato alla robotica. Su YouTube si trovano molti video simili, anche molto interessanti.

Dividere per zero

in Informatica | 2 Comments

In informatica la divisione per zero genera un errore, perché la divisione per zero in matematica dà un numero talmente grande che le risorse limitate di un computer non sono in grado di calcolare.

In questo periodo sto provando il sistema operativo Android. Android non è un vero e proprio sistema operativo, ma è una piattaforma software open source per device mobili come telefoni cellulari e palmari. Android è stato sviluppato da Google e si basa su un kernel Linux embedded e su una macchina virtuale chiamata "Dalvik Virtual Machine", programmata in Java e che si occupa di mettere a disposizione un ambiente per le applicazioni mobili basate su Android e programmate in Java.

Ho installato Linux Ubuntu 8.10 sul pc portatile Acer 8930G. L'installazione è andata bene, tranne per l'audio e il lettore di schede di memoria SD incorporato che non funzionano con Ubuntu.

I robots in informatica possono essere di due tipi: hardware e software.

Un computer
non è altro che un robot programmabile. Il robot viene utilizzato per eseguire compiti ripetitivi sempre uguali dotandolo di una intelligenza statica e in alcuni casi artificiale.

Succede così che in molti settori del lavoro, i robots sostituiscono gli uomini, mandandoli a casa o a spasso. L'uomo si ritrova così disoccupato, senza lavoro. Nasce quindi, per molte persone, l'esigenza di trovare qualcosa da fare per non stare lì con le mani in mano a fare niente, qualcosa che i robot non possono fare, altrimenti ritorniamo di nuovo da capo.

La cosa che i robots non sono in grado di fare è pensare. I robots non pensano. Anche quando un robot ti dà l'impressione di stare a pensare, per esempio quando è impegnato in un gioco di pensiero come Scacchi o Dama, in realtà non sta pensando, ma sta eseguendo un algoritmo, una sequenza di istruzioni macchina che il programmatore gli ha ordinato. L'attività del pensare è una attività esclusivamente umana.

Il grosso merito dei robots è quello di liberare l'uomo da attività ripetitive sempre uguali, per dargli il tempo di pensare, di ragionare e quindi di prendere coscienza della propria realtà umana. Quando l'uomo viene liberato dall'attività meccanica ripetitiva tipica del lavoro manuale, ha molto più tempo libero per dedicarsi a qualcosa d'altro.

L'attività del pensare rientra tra le tante cose fattibili e contraddistingue il pensatore, colui che pensa, colui che si è affrancato dal lavoro manuale ripetitivo tipico della catena di montaggio, per dedicarsi al ragionamento, alla creatività artistica. Ci sono tantissime cose alle quali pensare e sulle quali ragionare, tu le conosci meglio di me. Scegli a cosa vuoi pensare e ragionaci sopra. La matematica o la filosofia sono alcune discipline sulle quali focalizzare il pensiero e il ragionamento.

Ora che ci hai pensato e ragionato sopra, metti giù i risultati e condividili.

Io ho ragionato
. Mentre il mio pc calcolava la varianza della distribuzione gaussiana degli uomini sposati e di quelli non sposati, io pensavo. Ho scelto di ragionare su alcuni passi del Vangelo dove Gesù accenna agli angeli del cielo e al loro stato "civile" celeste. Ed ora metto giù i risultati del mio ragionamento per condividerli con te. Vediamo:

Marco 12,25. Quando risusciteranno dai morti, infatti, non prenderanno moglie né marito, ma saranno come angeli nei cieli.

Luca 20, 34. Gesù rispose: «I figli di questo mondo prendono moglie e prendono marito; ma quelli che sono giudicati degni dell'altro mondo e della risurrezione dai morti, non prendono moglie né marito; e nemmeno possono più morire, perché sono uguali agli angeli e, essendo figli della risurrezione, sono figli di Dio.

Matteo 6, 9. Voi dunque pregate così: Padre nostro che sei nei cieli, sia santificato il tuo nome; venga il tuo regno; sia fatta la tua volontà, come in cielo così in terra...

Gesù fa sapere che gli angeli del cielo non si sposano, poi nella preghiera del Padre Nostro invita i suoi discepoli a chiedere al Padre che sia fatta la sua volontà come in cielo così in terra. Allora, se in cielo gli angeli non si sposano, non ci si dovrebbe sposare neanche sulla terra, se si vuole fare la volontà del Padre che si fa in cielo anche in terra (non dimentichiamo che gli angeli contemplano incessantemente Dio faccia a faccia, lo glorificano, lo servono e sono suoi messaggeri nella missione di salvezza. Quindi sanno bene cosa Dio vuole. E, se non si sposano, evidentemente è perché quella è la volontà di Dio su di loro). Mi pare un ragionamento logico o no? Ma allora perché ci sposiamo? Se il cristiano chiede al Padre che si faccia sulla terra la volontà che si fa in cielo, per coerenza, come minimo dovrebbe smetterla di sposarsi e comportarsi da vero cristiano, come un angelo del cielo, il quale non si sposa. E invece no, ci si sposa in terra in barba alla volontà del cielo. Perché?

Hai visto in che loop mentale sono finito pensando troppo? Sono alla ricerca di una condizione logica vera o falsa per uscire dal loop. Ci sarà una ragione logica che spieghi perché gli angeli del cielo non si sposano, mentre gli uomini sulla terra invece sì.

Programmazione ricorsiva

in Informatica | No Comments

Una tecnica di programmazione è la ricorsione.

La ricorsione in informatica consiste nel costruire una funzione che richiama se stessa in modo ricorsivo.

Per esempio se voglio creare una funzione che fa la somma di due numeri positivi, posso definire la funzione "somma" passandogli come parametri i valori da sommare. in questo modo:

funzione somma (x, y)
{
z=x+y
return z
}

La funzione somma() è una funzione normale molto semplice e non ricorsiva che restituisce la somma di x e di y.

Proviamo a renderla ricorsiva:
La cosa è molto semplice e banale:

funzione somma_ricorsiva (x,y)
{
if y > 0 { somma_ricorsiva (x+1,y-1) }
else return x
}

Cosa ho fatto? Anziché sommare x e y ho usato il parametro y come variabile di controllo per contare quante volte sommare 1 a x richiamando la stessa funzione all'interno di se stessa.

Collaudiamo la nostra funzione.

Proviamo ad eseguire la somma di 10 + 10. Per farlo dobbiamo scrivere la nostra funzione ricorsiva in un linguaggio appropriato e comprensibile dal browser e che sia sintatticamente corretta. Scegliamo Javascript come linguaggio di programmazione script e scriviamola come pagina html in modo che sia testabile dal browser. Il browser deve essere abilitato ad eseguire javascript altrimenti lo script non viene eseguito dal browser. Creiamo un file di testo e chiamiamolo ricorsione.html, apriamolo con notepad e al suo interno scriviamo le seguenti istruzioni:

<html><head></head>
<body>
La somma dei due numeri è uguale a :

<script language="Javascript">

function somma_ricorsiva (x,y)
{
if (y > 0) { somma_ricorsiva (x+1,y-1) }
else return document.write (x);
}

somma_ricorsiva (10,10);

</script>
</body>
</html>

Copiate le istruzione precedenti, salviamo il file ricorsione.html e carichiamolo con il browser preferito. Dovremmo vedere a video il risultato di 10+10 che è 20.

I limiti

La programmazione ricorsiva è una tecnica di programmazione molto potente, ma è pericolosa se non la si riesce a controllare bene. Infatti programmare ricorsivamente comporta forti limitazioni dovute alla quantità di memoria che abbiamo a disposizione del browser per eseguire lo script. Devi sapere che ogni volta che la funzione chiama se stessa, occorre allocare memoria per lo script e nel caso si debba richiamare molte volte in modo ricorsivo la stessa funzione, c'è il rischio di esaurire la memoria a disposizione.

Ad esempio, vedi se riesci a sommare 100000 e 100000. Probabilmente lo script va in errore e non viene eseguito.

Bisogna quindi essere consci, prima di cimentarsi con funzioni ricorsive, di avere abbastanza memoria a disposizione per le nostre necessità facendo un test di memoria in runtime prima di chiamare una funzione ricorsiva e valutare se continuare o fermarsi per evitare di andare in overflow di memoria. Il test di memoria naturalmente rallenta molto lo script ed è quindi a discrezione del programmatore valutare quando farlo in software mission critical o meno.

Ti è piaciuto questo post? Bene, io ti ho dato il la, ora fai le tue prove, modificando e aggiungendo cose nuove alla funzione ricorsiva o provando ad inventarti una tua funzione ricorsiva che faccia qualcosa di utile per l'umanità (ad esempio puoi provare a modificarla in modo che tratti anche numeri negativi), secondo la tua fantasia, documentandoti sul linguaggio Javascript (se non lo conosci) che è molto bello.
Tuttavia non mi stressare con domande sulla programmazione ricorsiva, perché non ho molta voglia e tempo per rispondere.

Sitemaps con Movable Type

in Informatica | No Comments

Vediamo come generare automaticamente con Movable Type 3.2 una sitemaps xml compatibile con il protocollo di Google:
Google Sitemaps è un esperimento nella scansione del Web. Viene utilizzato da Google e altri motori di ricerca per informare il crawler sulla collocazione delle pagine web e relativi files nel tuo sito web, fornendogli informazioni sull'ultimo aggiornamento della pagina, la frequenza di scansione, la priorità del file.

Alla ricerca di terapie intelligenti

in Varie | No Comments

L'Università di Stanford (USA), da diversi anni, è promotrice di un ambizioso progetto di calcolo distribuito volto allo studio del comportamento delle proteine al fine di trovare terapie efficaci nei confronti di malattie quali: Alzheimer, mucca pazza (BSE), CJD, ALS, Huntington e Parkinson, per le quali oggi non esiste ancora una cura risolutiva.

Windows è meraviglioso

in Informatica | No Comments

Guarda che casini bisogna fare per fare funzionare la stampante e il suo spooler di stampa con un sistema operativo come Windows.
Qui c'è il link all'articolo per far funzionare lo spooler della stampante Lexmark

Non è meraviglioso?

Te lo hanno pure scritto in inglese, così lo capisci meglio.

Ma come si fa? Ma come fa un povero cristo che si compra il computer e la stampante per vederla funzionare bene e poter lavorare con tranquillità a fare i conti con un articolo del genere?

Ma io mi ci metto nei panni del povero cristo che di pc, spooler, stampanti non ne capisce niente o ne capisce poco e deve affrontare un articolo del genere.
Ma c'è da spararsi.

Sfido io che poi i giornalisti come Vattimo si inquietano quando devono accendere il computer e corrono a scrivere articoli sui giornali.

Chiudi e riavvia

in Informatica | No Comments

Chiudi e riavvia, chiudi e riavvia, chiudi e riavvia, sempre, all'infinito, e ancora di più.

Ecco il significato ultimo della vita: chiudi e riavvia. Chi te lo insegna? Ma Windows naturalamente.

Venire a contatto con questo sistema operativo è una esperienza bellissima. La tua vita si trasforma in una serie infinita di chiusure e riavvii del sistema.

Le inquietudini dei giornalisti

in Internet | No Comments

Oggi su "La Stampa" c'è un articolo del filosofo Gianni Vattimo: "Nel nome del virus, la fragilità dei computer onnipotenti". Ho letto l'articolo e ho capito quale abisso ci sia tra chi è nato e vissuto in mezzo ai pc e all'informatica e chi invece l'informatica e il computer la vive in senso passivo. Forse ho scoperto l'acqua calda.

Nell'articolo leggo: "ma ormai il senso di inquietudine che ci prende quando accendiamo il computer è una sensazione universale". E' una provocazione? Ma quale senso di inquietudine. Ma siamo matti? A me non succede, non è mai successo. Quando accendo il computer, lo faccio meccanicamente e penso a quello che dovrò fare e non c'è nessuna inquietudine. Per di più Vattimo usa il pronome personale di prima persona plurale: noi. Noi chi? I giornalisti?

Si legge inoltre nell'articolo: "... il computer sa fare più cose di quante ne so fare e fargliene fare io, e spesso, quando tocco inavvertitamente un tasto, sfugge al mio controllo.."

Archives

Creative Commons License
This blog is licensed under a Creative Commons License.
Powered by Movable Type 4.35-en