Ricerca personalizzata
Visualizzazione post con etichetta Informatica. Mostra tutti i post
Visualizzazione post con etichetta Informatica. Mostra tutti i post

lunedì 5 aprile 2010

Linux... per molti ma, non per tutti

La rete è piena di articoli che osannano la potenza di Linux. Non staremo ora qui a elencare tutte le infinite possibilità di questo SO e le sue distribuzioni. Ci soffermeremo ad elencare alcuni aspetti che lo rendono difficile da digerire, a chi, giocoforza arriva da un mondo Windows e non vuole o non ha la possibilità di prendersi un post-grado in informatica e questo solo per installare ed usare programmi che fino a poco prima, usava, magari con un poco di fastidio, su Windows.

Come si sia propagato Linux non è difficile a capirsi; l'idea di avere un sistema che faccia tutto e sia gratuito e sia sicuro ecc, si autoalimenta nelle menti di chi ne ha sentito parlare o visto alcune applicazioni. A valanghe si possono trovare notizie delle incredibili possibilità seguite da tonnellate di proteste, fino a veri e propri scontri fra i sostenitori di uno o l'altro sistema. Ognuno affermando la facilità di reperibilità, della compatibilità e accentuandosi sulla robustezza e sicurezza.

Insomma da quante voci circolino su Linux, si può affermare che più che un SO, sia una specie di religione, dove diventandone adepti installandosi una distribuzione sul computer, poco a poco si diventi detentori di conoscenze e poteri informatici...

In molti hanno richiesto consigli su quale distribuzione installare, che programmi usare per poi ritornare mesti, al vecchio Windows perché la loro scheda video non andava come si deve, perchè il programma per ritoccare le loro foto non è di facile uso, perché la sospirata scheda DVB-T/S non va, perché l'audio non è della qualità voluta e comunque non funziona in supersourround 7.1, perché, perché...

La comunità Linux dal canto suo, si prodiga in sforzi di semplificazione e consigli, che mamma Microsoft solo sogna. Le distribuzioni oggi, sono quanto di più semplice si possa trovare, in fase d'installazione, con appositi CD-Live che permettono l'assaggio e la visione d'uso inoculando l'idea che il sistema è il massimo della libertà: nessuno obbliga ad installare Linux; è una scelta personale e comunque, si può sempre fare retromarcia.

Tutto rose e fiori? A sentire i fans di Linux sì! Dimenticando che nessuno obbliga a comprarsi un PC, che nessuno obbliga ad usare Windows ecc., ecc.

Le rogne arrivano quando al terminale Linux, si presenta la persona che cerca la nuova relase dell'applicazione, dato che l'attuale non è ottimizzata, per scoprire che le funzionalità della nuova applicazione, prevedono l'aggiornamento dei driver video, dato che non implementati nella vecchia edizione, e fin qui... Il problema nasce che su Linux, nessun driver video per schede accelerate odierne, è "open" ma tutti sono proprietari. Per cui la comunità Linux non può metterci mano.

Mentre su Windows, il novo driver (che poi magari darà problemi), s'installa con un click e dopo il riavvio, tutti gli altri programmi sono lì presenti, su Linux la nuova specifica deve disinstallare quanto in contrasto con il nuovo driver, dato che su Linux, le applicazioni sono installate per funzionare con il driver apposito (questo anche su Windows, ma la cosa viene messa meno pesante).

Così, le nuove feature inserite, per essere apprezzate, devono ricompilare e adattarsi alle applicazioni (oh, questo a soldoni che non ho spazio e tempo per spiegare tecnicamente, e poi ci sarà sempre qualcuno che la sa meglio), e non ultimo, il riavvio della macchina...

In barba ad una delle affermazioni di chi "adora" Linux, che sostiene di non dover come su Windows, riavviare il sistema ogni volta... (ma questa è una falsa informazione, dato che ogni SO si basa su un Kernel e che giocoforza, per caricare i driver deve farlo da boot).

Il neofita speranzoso scopre al riavvio di Linux, che qualcosa non è andata come promesso. La nuova performance c'è e sta li pronta, solo che non c'è il programma che la possa usare... e così a manina, deve reinstallarsi tutto quanto; per scoprire poi che le dipendenze dei pacchetti, non sono rispettate e quindi non può usare l'applicazione. Questa dipende da librerie che vogliono una versione anteriore o posteriore, ma comunque non compatibile.

E la cosa peggiora, non può tornare indietro. Quanto si disinstalla su Linux, è disinstallato. Non c'è l'opzione di Windows " ripristina il sistema ad uno stato precedente". Questo vuol dire che la sua scheda audio, se tolta perchñe non compatibile, o perché chi ha fatto il nuovo driver, non la prevede, e quindi toglie il modulo di caricamento, o riformatta e reinstalla tutto ( ma non doveva essere una grave pecca di Windows?), oppure ... piange o meglio, dopo aver pianto, viene a tempestare forum, blog ecc. affinché qualcuno gli risolva il problema, grave il punto quando sa che nei pressi c'è qualcuno che mastica Linux... quest'ultimo avrà alcuni grattacapi.

Alla fine... o riformatta davvero, visto che anche nei forum ufficiali si arrendono e danno questo fantastico consiglio, sperando magari che fra sei mesi, la nuova versione risolva il problema, o ritorna a Windows.

Dove nasce il problema? Presto detto. Mentre per Windows, sebbene chiuso, proprietario ecc., gli applicativi base, sono decisamente ottimizzati e nessuno che non abbia un certo livello, tempo e denaro, può divertirsi a compilare nuove versioni, su Linux la cosa ... è "open". Così, magari fatta dal giovane universitario a scopo di studio, o dal "cantinaro" in cerca di gloria, arrivano versioni non ortodosse nel proprio computer, creando il caos cui sopra.

A dir il vero, ogni distribuzione Linux, raccomanda di avvalersi dei repository ufficiali (Windows Update per i "winari"), sconsigliando aggiornamenti o installazioni da fonti esterne. Ma, non può chiudere il sistema, altrimenti va contro proprio a quanto afferma, e così, specie a chi si è rivolto ad un forum, scopre che per mettere la pezza al suo problema, poco a poco peggiora il tutto fino al completo game over.

Altro punto dolente, il fatto che mentre su Windows, non è possibile installare aggiornamenti per versioni differenti del sistema, non si può mettere driver di Xp su Win95 o Vista o Seven, tranne in alcuni casi, permessi comunque dal sistema stesso, Linux cambia tipologia di struttura, a volte in meno di 6 mesi (vantandosene pure) che però, sebbene accetti i vecchi applicativi e comandi e compilazioni, fa risultare il sistema, instabile. Caso tipico la differente gestione del sistema X-Org o Gnome 2 verso G.nome3 o Kde.x che si voglia.

Dite ad un sistema di caricare i moduli per le vostre schede hardware in un modo e poi obbligate il kernel a gestirle con un sistema differente e vedrete la goduria...

Conclusione:

Se volte Linux, o quello che installate vi va bene così come sta e dimenticate aggiornamenti tipo Windows e vi trattenete dall'installare nuove schede hardware, o rimanete su Windows.

Se il vostro utilizzo è di tipo ludico, lasciate stare Linux dov'è, fra i meandri della rete. usatelo se davvero avete voglia di istruirvi, oppure di usarlo come piattaforma di lavoro. Senza dubbio sarà ancora per un po', un SO robusto, potente e stabile.

Se pensate che Windows non sia sicuro, perché virus di qua, troyan di la, analizzate la cosa onestamente. Quante volte andate su siti dubbi per scaricarvi il programma crack non so che o il film tal dei tali? Siete fra chi cerca facili divertimenti visivi su siti osè? Il medico vi ha ordinato espressamente di infilarvi in poco chiari torrent o che si voglia? Pena la vostra salute?
Magari è vero, alcuni virus vi sono arrivati comunque (il tipico caso di Blaster di anni fa) e vi hanno dato delle noie. Ma non mi dite che non sono state risolte. Avete davvero bisogno di stare tutto il giorno connessi a siti che chiedono carta di credito e cose del genere? Vi ricordo che in questo caso, non ci sono Linux che tengano; se il sito è malevolo, i dati ve li succhiano comunque.

Come detto in un commento di un post precedente...
" in fin dei conti... bisogna vedere il computer come un mezzo di lavoro.." più o meno, e ricordate, se funziona, perchè aggiornare?

venerdì 21 agosto 2009

Windows Mobile 6.x Vs. Symbian

Se esiste una cosa di cui soffro il fastidioso marketing è quella dei cellulari e palmari in genere. Questi aggeggi, che si rivelano utili in molti casi, ammesso siano dotati delle ultime tecnologie in fatto di connettività, hanno la pessima abitudine di essere "closed". Ovvero dell'impossibilità di poter usarli nella loro piena capacità. Musiche proprie, tagliate senza pietà perchè qualcuno sospetta siano violatrici di diritti, foto che non si possono scaricare se non con cavetti "addomesticati" opportunamente di fabbrica, applicativi che si rifiutano di funzionare, ricambi introvabili, ecc.

Per non dire dell'impossibilità di attualizzarli con l'ultimo S.O., nemmeno pagando cifroni alla fabbrica costruttrice: devi comperare il nuovo, anzi, passa a contratto di tal compagnia che te lo darà ottimizzato a scaricare solo cavolate a pagamento dalla stessa.

C'è chi dice che l'accordo tra Microsoft e Nokia per portare Office Mobile sui telefonini con Symbian abbia un amaro risvolto della medaglia. E cioè potrebbe rappresentare la resa della società di Redmond nei confronti del suo sistema operativo per smartphone. La collaborazione, dicono alcuni esperti del settore, rischia di diventare l'inizio della fine di Windows Mobile.

Già questa piattaforma non se la passa tanto bene: la release attuale 6.1 ha poco più di un anno di vita, ma risente di uno scarso supporto all'interfaccia touchscreen tanto in voga e di alcune caratteristiche migliorabili.

La versione 6.5 prevista per il prossimo autunno dovrebbe rimettere al passo con i tempi Windows Mobile e dare nuovo smalto al sistema operativo. L'edizione 7, prevista per il tardo 2010, promette di essere un ulteriore salto in avanti. Però nel frattempo la situazione si complica: Android è in ascesa e l'iPhone ha introdotto nuovi paradigmi di utilizzo.

«E' possibile che Microsoft si sia rassegnata a non imporsi nella gara dei sistemi operativi per telefonini, specie ora che Htc e Samsung sembrano orientati su Android», spiega Tero Kuttinen, analista di Mkm Partnes, a Reuters. Il quale, non pago di questa dichiarazione, sostiene come Nokia sia la carta vincente per contrastare Google.

E poi: «I benefici tratti dal raggiungere il volume di Nokia con Office bilanceranno le possibili perdite con i preesistenti utenti di Windows Mobile», sostiene Neil Mawston di Strategy Analytics. Come dire che l'unica ragione per avere il sistema operativo di Microsoft è la piena compabilità con i formati di Windows e Office. Ragione che viene a mancare se Nokia garantisce tutto ciò, con in più il beneplacito della società di Redmond che gli concede il pezzo forte della sua scacchiera.

Difficile, per ora, trarre conclusioni; certo che l'accordo tra le due società porta con sé una serie di congetture. Ma c'è anche chi dice che Windows Mobile abbia tutto da guadagnare. Per esempio, perché di fatto con Office sui Nokia si allarga l'ecosistema di Microsoft, su cui può puntellarsi per soffiare vento nelle vele di Windows Mobile.

E non va scordato nemmeno che questo sistema operativo, che vanta sviluppatori di ogni tipo e applicazioni uniche nel suo genere, è considerato "ideale" per impieghi militari. In ultima analisi, tutto grava sulle spalle della versione 6.5 e Microsoft, c'è da starne certi, non lascerà nulla di intentato.

giovedì 13 agosto 2009

Libri elettronici e-book

Che cos’è un ebook?
La definizione più corretta è quella di libro digitale.
Gli e-book possono essere letti sullo schermo del PC, di un PC portatile o di un Pocket PC o con dispositivi elettronici a loro dedicati, chiamati eBook reader.

Un e-book è quindi come un libro?
No. Nulla può sostituire il piacere di sedersi su una comoda poltrona e leggere, accarezzando la carta con le mani. Infatti un e-book non intende “sostituire” il libro, ma costituisce un nuovo medium per la sua diffusione, un medium diverso, che offre molti vantaggi.

Quali sono questi vantaggi?
Economici innanzi tutto, sia per il lettore che per l’autore. Senza la spesa della stampa, un e-book costa molto meno di un libro di carta. Un e-book reader pesa quanto un libro, e quel peso puoi portar sempre con te un immensa biblioteca di informazioni e conoscenza. Un e-book può contenere file audio, suoni musiche e animazioni. Un e-book può essere interattivo. Un e-book è il futuro.

Che cos’è un lettore ebook (ebook reader)?
Il lettore ebook è un dispositivo elettronico dedicato alla lettura di libri e documenti, che utilizza a questo scopo una tecnologia, denominata e-ink, che consente la lettura prolungata senza affaticamento degli occhi e la leggibilità anche in situazioni di piena luce.

Che cos’è l’inchiostro elettronico (e-ink)?
Si chiama e-ink, inchiostro elettronico, una tecnologia messa a punto dal MIT (Massachussets Institute for Technology) e brevettata dalla eInk Corporation, finalizzata alla visualizzazione digitale di testi ad alta definizione. Il suo concetto di base consiste nell’emulare in tutto e per tutto la stampa su carta.

Perché leggere con un ebook reader è meglio che leggere al computer?
La visualizzazione attraverso normali monitor LCD avviene grazie al fatto che l’occhio è colpito dalle radiazioni luminose sprigionate dai pixel accesi del monitor stesso. Questo comporta tre fondamentali conseguenze:

  • a) l’occhio colpito da radiazioni si affatica facilmente e la lettura di testi prolungati ne risente;
  • b) essendo costantemente acceso durante la lettura il monitor richiede alimentazione elettrica continua, con conseguente consumo della batteria;
  • c) dovendo contrastare la luminosità esterna per essere visualizzato, il monitor LCD diventa tanto meno leggibile quanto più aumenta la luminosità esterna, tanto da essere illeggibile in situazioni di piena luce.

L’ebook reader, grazie alla tecnologia e-ink, ribalta l’approccio di visualizzazione, che torna ad essere quello della carta stampata: la pagina si accende solo per un attimo per essere stampata, e si spegne: quel che leggo lo vedo grazie alla luce esterna, e non c’è alcuna emissione di radiazioni luminose. Per questo:

  • a) l’occhio non viene affaticato consentendo tempi di lettura di prolungati;
  • b) avendo bisogno di alimentazione elettrica solo nella fase di stampa di una nuova pagina l’autonomia della batteria copre – a seconda dei modelli e degli usi – una giornata intera di lavoro/lettura;
  • c) la leggibilità, anziché peggiorare, migliora in piena luce, consentendo la piena fruibilità anche in esterni e in pieno sole.

Oltre a tutto ciò, l’ebook reader, per le sue dimensioni e peso contenuti, consente di portare con sé agevolmente intere biblioteche.

1-Motori di ricerca Ebook e Pdf
Questi sono semplici motori di ricerca per Ebook ma anche per i file PDF.
E' consigliabile iniziare la ricerca di un ebook che ci interessa utilizzando uno di questi siti.
Digita il titolo del documento o il nome del libro che stai cercando e fai clic sul pulsante di ricerca,una volta trovato l' ebook desiderato nei risultati di ricerca basterà cliccare sul link di download e il gioco è fatto.
Ecco i migliori motori per cercare Ebook e Pdf:
http://www.pdfgeni.com/
http://www.pdf-search-engine.com/
http://www.data-sheet.net/

2- Scribd.com
Si potrebbe definire Scribd lo Youtube per i documenti. Gli utenti possono caricare qualunque documento di testo e che vogliono condividere facilmente con gli altri. In questo sito troverete una vasta collezione di ebook gratuiti,per il discorso del copyrights vale la stessa regola di Youtube...

3- Progetto Gutenberg
Il Progetto Gutenberg (PG) ha la più grande collezione di libri di dominio pubblico.
Questi libri non sono protetti dai diritti d'autore e disponibili per chiunque da utilizzare per qualsiasi scopo.
Un sacco di libri da tutto il mondo ,anche dei più grandi autori come come Dickens, Joyce, Shakespeare, Mark Twain, Anton Chekov e Edgar Allan Poe .
Questo sito è il più antico produttore di ebook gratuito su Internet e ora dispone di oltre 20.000 opere.

4-Ebooks Gratuiti per il vostro iPod, PDA, Smartphone, BlackBerry e dispositivi mobili
Per quelli di voi che amano avere ebook sul loro dispositivo portatile ecco alcuni siti che contengono i migliori libri che possono essere letti su dispositivi mobili
http://www.gutenberg.org/
http://www.manybooks.net/
http://www.feedbooks.com/
http://www.booksinmyphone.com/

5- Ebook Gratuiti Informatica e Tecnologia
Questi siti sono principalmente siti che raccolgono ebook di tecnologia , dai computer alla scienza, ingegneria e matematica alla programmazione e sviluppo web con guide e tutorials e altro ancora.
http://www.freecomputerbooks.com/
http://www.freetechbooks.com/
http://www.onlinecomputerbooks.com/

Ora grazie a questi strumenti avrete a disposizione migliaia,se non milioni,di ebook gratuiti,quindi buona ricerca e buona lettura!!.


lunedì 27 luglio 2009

Cifrare RSA: applicare le caratteristiche dei numeri primi

Abbiamo visto nel post di tempo fa, principi di codifica e cifratura. Oggi sviluppiamo l'argomento introducendo l'algoritmo RSA, derivato da l'applicazione di numeri primi.

Fin dai tempi di Euclide, cioè circa dal 300 a.C., gli antichi Greci sapevano che ci sono infiniti numeri primi e che essi sono distribuiti in maniera irregolare tra i numeri naturali. Da allora, molti matematici eminenti, come Fermat, Mersenne, Leibniz, Eulero, Gauss ecc., hanno compilato e analizzato lunghi elenchi di numeri primi, nel tentativo di farsi un'idea della loro distribuzione e per cercare delle formule in grado di produrre, se non tutti, almeno "molti"numeri primi.

Per esempio, un importante risultato fu ottenuto nel 1896 da due matematici francesi, Hadamard e De la Vallie Poussin. Essi dimostrarono il seguente teorema, che era stato congetturato quasi un secolo prima da Gauss: il numero dei primi minori o uguali a n può essere approssimato da n/log n (al crescere di n).

D'altra parte, molti matematici dal '600 in poi, a partire da Mersenne, si de dicarono a studiare i numeri del tipo 2p-1, con p primo. Infatti Fermat aveva dimostrato che, se non sono primi, i numeri di questo tipo hanno fattori tutti della forma 2Kp+1, con k numero naturale. Questo semplifica molto il test di primalità, cioè la verifica se sono primi o meno. In effetti, i più grandi primi trovati finora sono proprio primi di Mersenne, cioè del tipo 2p-1. In particolare lo è l'ultimo, quello trovato lo scorso novembre dal ventenne canadese Michael Cameron: si tratta di 213.466.917-1, un numero con oltre 4 milioni di cifre!

Quello che spinge a cercare nuovi numeri primi può essere l'emulazione nei confronti degli illustri matematici del passato, il desiderio di gloria, il piacere di battere un record. Nello stesso tempo, ci possono essere risultati collaterali della ricerca svolta, di interesse indipendente. Dagli anni '50 in poi, i conti necessari a verificare che grandi numeri sono primi sono stati effettuati dalle macchine calcolatrici: i programmi per trovare numeri primi sono stati usati per testare del nuovo hardware, c'è stata quindi un'utilità pratica.

A partire dagli anni '80, grandi numeri primi sono stati usati per cifrare messaggi segreti con il metodo di crittografia a chiave pubblica detto RSA (dai nomi dei suoi ideatori Rivest, Shamir e Adleman, ricercatori del Massachussetts Institute of Technology).

I metodi di crittografia a chiave pubblica prevedono che, chi deve ricevere l'informazione, renda pubblica la chiave (alcuni numeri) e il metodo per cifrare i messaggi. Egli poi, in base a dei "numerisegreti" in suo possesso è in grado di decifrare i messaggi che gli vengono inviati.

Nel metodo RSA:
  • i numeri segreti sono due numeri primi p, q e un numero N primo con (p-1)(q-1)
  • la chiave pubblica è costituita dal prodotto pq e da un numero M tale che MN-1 sia multiplo di (p-1)(q-1)
  • il messaggio da trasmettere è un numero intero positivo x, minore di pq;
  • il messaggio cifrato è il numero y, ottenuto come resto della divisione di xM per pq
  • per decifrare il messaggio, è sufficiente calcolare il resto della divisione di yN per pq.
Osserviamo che il messaggio deve essere un numero positivo e minore di pq. Pertanto se si tratta di un messaggio in lettere, bisogna innanzitutto trasformarlo in cifre con un metodo qualunque. Se il numero trovato è troppo grande, lo si spezza in numeri più piccoli da trasmettere separatamente.

La spiegazione del metodo si basa sul seguente teorema, che a sua volta segue da un famoso teorema, noto come piccolo teorema di Fermat.

Teorema Se 0≤x(xM)N è congruo a x modulo pq.

Nella pratica, bisogna scegliere p e q primi molto grandi, in modo che sia impossibile fattorizzare pq in tempo ragionevole. Il metodo infatti si basa sull'assunzione che sia estremamente difficile risalire a p e q conoscendo il loro prodotto.


Se chi intercettasse un messaggio fosse in grado di fattorizzare pq, di conseguenza conoscerebbe anche (p-1)(q-1), e per trovare N gli sarebbe sufficiente risolvere l'equazione

MN = 1 mod (p-1)(q-1),

con M e (p-1)(q-1) primi tra loro, entrerebbe così facilmente in possesso di tutte le informazioni necessarie a decifrare il messaggio.


Il rapido sviluppo di nuove tecniche per la fattorizzazione dei numeri composti sta rendendo problematico l'uso del metodo RSA. Si è infatti costretti a usare numeri p,q sempre più grandi, cosa che rende molto lungo il calcolo di y e di yN mod pq. Ci si sta orientando dunque a tornare a metodi crittografici classici, trasmettendo col metodo RSA soltanto la chiave.

Per saperne di più, consiglio i libri:

K. Devlin, Dove va la matematica?, Boringhieri
D. M. Davis, The nature and power of mathematics, Princeton University Press
S. Singh, Codici e Segreti, Rizzoli

e i siti web:

http://www.utm.edu/research/primes
http://www.mersenne.org/prime.htm


martedì 21 luglio 2009

Reti Neurali - I.A.

Una vasta branca dell'intelligenza artificiale cerca di costruire sistemi che affrontino problemi difficili per gli algoritmi classici dei sistemi esperti usando, invece, reti neurali che si ispirano, ma molto alla lontana, all'elaborazione dell'informazione nel nostro sistema nervoso.

Il principio fondamentale è che invece di scrivere un programma di calcolo con istruzioni esplicite, esempio di calcolo simbolico, si cerca, con apposite procedure di addestramento, di ottenere una rete con connessioni fra le unità i cui valori consentano alla rete di risolvere il compito per cui è stata addestrata in maniera implicita, con semplici calcoli analogici come il computo del livello di attivazione di ciascuna unità.

Fra le numerose applicazioni ingegneristiche di sistemi artificiali basati su reti neurali ve ne sono alcune in ambito medico, ad esempio per aiutare medici umani o sistemi esperti tradizionali nelle diagnosi di patologie specifiche da un insieme di sintomi e dati sul paziente. La rete li confronta, con un' impressione per così dire visuale piuttosto che logico- simbolica, con il quadro presentato da altri pazienti di cui è già nota la diagnosi corretta, e che viene fornito alla rete in fase di addestramento.

Queste applicazioni delle reti neurali hanno avuto un grado variabile di successo pratico, ma in generale ci si scontra con due caratteristiche dei sistemi artificiali fondamentalmente differenti da quelle del sistema nervoso:

1) le unità di calcolo di un sistema artificiale possono operare con estrema velocità, milioni di volte più veloci dei neuroni che costituiscono le unità di calcolo del nostro sistema nervoso

2) bisogna però spiegar loro cosa fare, almeno al livello di fornirgli richieste precise in fase di addestramento, mentre le reti neurali naturali sfruttano meccanismi di apprendimento basati sulla modifica spontanea e indipendente di un numero enorme di connessioni sinaptiche (ne abbiamo circa un milione di miliardi nel nostro cervello) fra i singoli neuroni.

Anche se crediamo adesso di comprendere, in prima approssimazione, i principi della plasticità sinaptica, non riusciamo per ora a convincere nessun sistema artificiale, da noi costruito, a modificare spontaneamente un milione di miliardi di variabili, senza che gli diciamo noi come fare.

Esiste poi una branca in forte espansione nell'ambito delle neuroscienze, che studia i processi naturali di calcolo neurale, realizzati nelle reti del nostro sistema nervoso. Questo è un campo affatto diverso e per me affascinante, i cui rudimenti ho cercato di spiegare in un libriccino introduttivo edito dalla Bruno Mondadori, Come funziona la memoria (1999).

Anche qui si ha a che fare, in un certo senso, con la medicina, ma si affrontano, ben prima delle patologie, questioni fondamentali della ricerca di base del tipo: a cosa corrispondono, nel nostro cervello, i processi mentali, il pensiero?Le reti neurali (o neuronali) sono una delle aree più interessanti della ricerca in Intelligenza Artificiale. Nonostante la loro ideazione risalga ai primi anni '60, solo di recente si sono avuti notevoli risvolti applicativi e teorici.

L'idea che sta alla base delle reti neurali è quella di "imitare" in funzionamento del cervello, utilizzando un certo numero di semplici elementi di calcolo fortemente interconnessi tra loro per elaborare dati.

Gli elementi di calcolo semplici vengono chiamati neuroni. In una rete neurale alcuni neuroni sono utilizzati come ingressi, altri come uscite, altri ancora (non sempre presenti) non sono connessi con l'esterno e svolgono una funzione di "calcolo" e vengono chiamati neuroni "nascosti" (hidden).

La grande differenza rispetto ad altri sistemi di calcolo consiste nel fatto che la rete non è programmata per svolgere un determinato compito, ma viene "addestrata" mostrandole degli esempi (sotto forma di coppie ingresso-uscita), la rete impara così ad associare ad ogni ingresso un'uscita e anche in una certa misura a generalizzare quello che ha imparato per ingressi che non le erano stati presentati in fase di addestramento. Così per ottenere l'uscita voluta è sufficiente che l'ingresso "somigli" a quello originario. Questa proprietà rende le reti neurali adatta a tutti i compiti che hanno a che fare con il riconoscimento e classificazione di input (caratteri, immagini, suoni...).

Le capacità della rete sono determinate sia dal numero di neuroni, sia soprattutto dalla topologia (cioè da come sono collegati tra loro i neuroni). Esistono infinite topologie possibili, ma le più utilizzate si possono schematizzare in due classi: le reti alimentate in avanti (feed forward) e le reti ricorrenti (o ricorsive).

Nelle prime non esiste nessun collegamento che riporti in qualche modo le uscite in ingresso, questo le rende abbastanza semplici da studiare ed addestrare ma non gli permette di mantenere uno "stato" interno, cioè una memoria di quello che è successo nel passato. Questo tipo di rete è il più studiato ed utilizzato.
Le reti ricorrenti hanno delle capacità più estese però non sono state in generale ancora ben comprese e non si conosce sempre un metodo adatto per addestrarle.

Percettrone multi livello (Multi Layer Perceptron)
Una delle reti di più utilizzate è il cosiddetto "percettrone multi livello".

Questa rete ha uno strato di neuroni di ingresso, uno strato di neuroni di uscita, e a volte uno o più strati di neuroni nascosti. Per addestrare la rete si fanno variare i coefficienti associati a ciascun collegamento (è questo che rende possibile l'apprendimento nella rete). Ogni neurone riceve diversi ingressi ed ha una sola uscita (la cosiddetta "attivazione" del neurone) che è funzione degli ingressi.

Per permettere alla rete di apprendere funzioni non lineari è necessario usare una funzione non lineare. Le funzioni più utilizzate sono la funzione "gradino", e la funzione "sigmoide" (nota anche come funzione di Fermi). La prima viene utilizzata quando è necessaria una risposta "digitale" (cioè di tipo on/off), la seconda quando invece l'uscita deve assumere valori continui compresi in un intervallo limitato.

Tipicamente l'argomento della funzione di attivazione è la somma degli ingressi del neurone pesati ciascuno col peso della connessione corrispondente. Le attivazioni dei neuroni d'ingresso sono gli input (vengono imposte dall'esterno, in un certo senso non sono quindi dei veri neuroni...), l'attivazione dei neuroni d'uscita rappresenta l'uscita della rete.

Ottenere il valore dell'uscita dati gli ingressi si riduce a fare propagare in avanti il segnale, cioè a calcolare in successione tutte le varie attivazioni partendo dagli ingressi.

L'addestramento della rete risulta un pò più complesso: all'inizio la rete non contiene nessuna informazione, si assegnano i valori dei pesi in modo casuale (ad esempio con valori compresi tra -0.5 e 0.5), successivamente si presentano gli ingressi, si calcola l'uscita della rete, si calcola l'errore, come differenza tra il valore ottenuto e i valori che si volevano, e si aggiustano i pesi in modo da fare diminuire l'errore.


Per aggiustare i pesi esistono diverse regole a seconda del tipo di rete, per una rete senza strati nascosti si utilizzano la formula seguente:

Wj = Wj + alj * (T-O)

dove Wj è il peso del collegamento j-esimo, alfa è una costante chiamata "velocità di apprendimento" (learning rate), Ij è l'ingresso j-esimo, T è l'uscita i-esima desiderata e O è l'uscita i-esima della rete. La costante alfa viene utilizzata per diminuire la velocità di convergenza, in modo da limitare oscillazioni attorno al minimo di errore (l'errore è rappresentato da T-O).

Reti di questo tipo con funzioni di attivazione lineari (chiamate adalines) vengono impiegate spesso nel riconoscimento dei caratteri o nella costruzione di filtri adattivi.

Se la rete contiene strati di neuroni nascosti è necessario utilizzare per l'addestramento la tecnica di "backpropagation", grazie alla quale si riesce a suddividere l'errore all'uscita tra i neuroni dei livelli nascosti e quindi a variare i pesi in modo da minimizzare l'errore.

Nell'addestramento di una rete neurale è importante presentare tutte le coppie di ingresso-uscita diverse volte. Ciascuna presentazione viene chiamata "epoca" di addestramento. Se l'addestramento procede correttamente ad ogni epoca l'errore (quadratico) medio su tutte le uscite dovrebbe diminuire.

L'algoritmo di addestramento può essere schematizzato come segue:

;Ripeti per n epoche
Per ogni esempio di addestramento
Presenta ingressi
Propaga in avanti
calcola errore (T-O)
Ritocca pesi
Fine ciclo esempi
Fine ciclo epoche

Per utilizzare una rete neurale nella risoluzione di un particolare problema è opportuno cercare di identificare gli ingressi e le uscite che riescano a caratterizzare bene il problema. Riguardo alla topologia della rete da usare non si può dire molto, in quanto non sono ancora disponibili teorie riguardo al numero ottimale di neuroni e collegamenti da utilizzare.

Un risultato importante è che le reti con un solo livello nascosto riescono a rappresentare tutte le funzioni continue, mentre le reti con due livelli riescono a rappresentare anche quelle discontinue. Le prestazioni di tutte le reti neurali dipendono molto dal set di addestramento: più il set è rappresentativo del problema e più è completo più le prestazioni saranno migliori e la anche la capacità di generalizzare della rete sarà migliore.

Esempio. La rete della prima figura è un rete che viene utilizzata di solito nel riconoscimento di caratteri. In questo caso numero delle uscite sono tante quante i caratteri da riconoscere (un neurone per ogni carattere). Gli ingressi ricevono la luminosità media di un certo numero di aree dell'immagine (normalmente disposte a griglia). Il neurone che ha attivazione più alta in uscita viene considerato come risposta della rete.

Atri tipi di reti neurali
Tra i numerosi tipi di reti neurali esistenti sono da ricordare le reti di Hopfield e le self organizing nets di Kohonen.

Le prime sono delle reti ricorrenti formate da un solo strato di neuroni. Ciascun uscita è collegata agli ingressi di tutti gli altri neuroni. Questa rete viene addestrata utilizzando delle particolari formule lineari e può funzionare come rete auto associativa. Dopo la fase di allenamento la rete è in grado di riconoscere una configurazione che ha imparato (anche se parzialmente corrotta) e di presentare in uscita la versione originale (quindi integra). La rete viene utilizzata ad esempio per riconoscere immagini ad un solo bit colore. Un risultato teorico interessante è che la rete può memorizzare in maniera affidabile fino a 0.138N esempi, dove N è il numero di neuroni della rete.

Le reti di Kohonen invece costituiscono un esempio di reti che sono in grado di apprendere senza bisogno di supervisione, cioè hanno la capacità di ricevere diverse configurazioni in ingresso e di classificarle per somiglianza. Anche in questo caso le formule usate nell'addestramento sono diverse da quelle usate per i percettroni.


lunedì 13 luglio 2009

Corso di Hacker

Un Hacker è una persona che si impegna nell'affrontare sfide intellettuali per aggirare o superare creativamente le limitazioni che gli vengono imposte, non limitatamente ai suoi ambiti d'interesse ( che di solito comprendono l'informatica o l'ingegneria elettronica ), ma in tutti gli aspetti della sua vita.

Il progetto Hacker High School é finalizzato a fornire materiali informativi su come difendersi in rete stimolando l'interesse dell' Hacker che c'è in tutti noi.

L'obbiettivo é quello di sviluppare una conoscenza sull' Hacking per identificare autonomamente i problemi di sicurezza e di privacy, imparando ad assumere decisioni responsabili in materia di sicurezza.

L’ Hacking é intrigante per la natura illegale dell'accesso ai computer, per questo é importante conoscerlo meglio per esserne piú consapevoli e avvisare gli altri dei problemi di sicurezza e renderli pubblici, senza la preoccupazione di finire in carcere per averlo fatto.

Queste 12 lezioni ( in formato .pdf ) sull' uso sicuro delle risorse informatiche e su internet, sono disponibili in sei lingue europee, seguono i link diretti in italiano :

Hacker High School è un progetto ISECOM, una associazione internazionale che si occupa di tecniche e metodologie della sicurezza.


domenica 31 maggio 2009

Il progetto Palladium

Il progetto Palladium è un vecchio sogno lanciato da Microsoft ma appoggiato dai principali produttori di hardware, come IBM, Intel, AMD e tanti altri. Il sistema Palladium consiste in un meccanismo criptato di comunicazione tra componenti interni del PC che dovrebbe funzionare anche da sistema antipirateria. I chip che si occuperanno della gestione di questo tipo di informazioni saranno sotto segreto industriale. Quindi non sarà possibile verificare cosa succede ai dati in queste macchine, questo progetto per via della cattiva pubblicità ricevuta ha cambiato nome più di una volta.
Senza entrare nei dettagli tecnici possiamo dire che Windows Vista nel 2008:
  • Permetterà l'utilizzo di soli driver certificati, secondo molti osservatori, questa decisione apre la strada alla creazione di whitelist contenenti l'elenco dei programmi e dei componenti hardware "graditi" a Microsoft ed ai suoi partner. Nello stesso modo, è possibile che vengano redatte delle blacklist che contengono l'elenco dei programmi che non potranno essere usati su macchine LaGrande/NGSCB. Tra questi programmi sgraditi potrebbero esserci molti concorrenti scomodi, come OpenOffice e Linux. La documentazione di Intel LaGrande fa esplicito riferimento a liste di programmi e componenti hardware ritenuti "affidabili".
  • Sistema anticopia, tramite il Fritz Chip o Presidio se presente Windows Vista impedirà l'installazione abusiva della stessa copia su più macchine.

Il problema non è tanto nell'utilizzo di Windows, quanto nel rischio reale che sia impossibile installare Linux o qualunque software libero che non appaia in queste liste.

Non sarà possibile inoltre eseguire programmi di propria creazione se questi non vengono registrati presso un potenziale ente (magari a pagamento) che gestisce le white/black lists. Questo condannerebbe gli studenti meno abbienti all'ignoranza informatica.

venerdì 29 maggio 2009

Aggiungere memoria alle applicazioni.

Quando si lavora nel mondo integrato ci sono alcune possibilità che si possa andare incontro ad un’applicazione che richiede maggiore spazio di memoria di quanto sia disponibile nella maggior parte dei microcontrollori e anche degli EEPROM esterni. Ecco perché vanno molto bene le schede SD o MMC. Sono a basso costo e facile da lavorare.

Per la maggior parte delle applicazioni tutto ciò che serve è una porta SPI, e anche se non disponiamo di essa è possibile emularne facilmente una sulla maggior parte dei microcontrollori. Con la porta SPI si può comunicare e memorizzare i dati per la scheda SD, ma è un po’ più complicato. La maggior parte delle applicazioni richiede di memorizzare o recuperare i dati da un personal computer. Allora si ha bisogno di un modo per collegare l’applicazione al computer e soprattutto un metodo per organizzare i dati in un modo che sarà riconosciuto dal sistema operativo del computer. Per questo è necessario disporre di una sorta di sistema di gestione dei file. E’ possibile fare uso di un sistema FAT 16 o FAT 32. Il sistema File Allocation Table (FAT) è semplice e supportato da quasi tutti i sistemi operativi. E’ necessario per prima cosa capire come funziona prima di aggiungerla al dispositivo integrato.

Le schede SD o MMC tendono a gestire la loro memoria in dimensioni fisse conosciute come settori o talvolta dimensioni di pagina, che solitamente sono di 512 o 256 byte. In un sistema FAT alcuni di questi settori sono utilizzati per la File Allocation Table, che agisce come un indice, mentre gli altri settori sono utilizzati per la memorizzazione dei dati. Tutti questi settori possono essere uniti per formare ciò che è noto come cluster. Le dimensioni dei cluster possono variare da 1 a 64 settori. I cluster sono gli enti che sono stati monitorati all'interno della File Allocation Table. Dato che il cluster può variare da 1 a 64 settori, deve essere presa una decisione sulla dimensione dei cluster. Il vantaggio di avere una più ampia dimensione dei cluster è che per gestire la memoria viene utilizzato un minor numero di cluster e quindi è obbligatoria una minore File Allocation Table.

Questo rende le cose più efficiente sul sistema dei file, ma usa molto spazio della memoria quando ci sono memorizzati piccoli file per ogni cluster. Quindi sostanzialmente si desidera scegliere la dimensione dei cluster in base al tipo di dati e le dimensioni con cui si dovrà lavorare. Più piccoli sono i dati e più piccola sarà la dimensione dei cluster.. In tal modo si garantisce un uso efficiente della memoria.

La presente File Allocation Table è solo una tabella contenente informazioni relative a ciascun cluster. Ad esempio in un sistema FAT16 ogni tabella è un numero intero a 16-bit che dimostra se il cluster se è vuoto o pieno, legato ad un altro cluster, riservato o se contiene settori danneggiati. Un cluster pieno è rappresentato da 0xFFFF mentre uno vuoto è dato da 0x0000. Quando un file richiede più di un cluster di spazio di memoria, si forma una catena di cluster e la File Allocation Table collega questi cluster avendo l'indirizzo del prossimo cluster presente in ogni indice fino all'ultimo cluster, che ha un 0xFFFF per rappresentare la fine dei dati o l'ultimo cluster nel file. Anche 0x0001 rappresenta un cluster riservato mentre 0xFFF7 rappresenta un cattivo cluster. La tabella seguente descrive tali caratteristiche.

FAT 16 Features

La File Allocation Table è molto importante e due o più copie di essa sono memorizzate prima dei cluster dei dati. Lo scopo principale della File Allocation Table è quello di tenere traccia dello status dei cluster (vuoto, pieno) e la posizione, ma non contiene alcuna informazione circa i file attualmente archiviati. Per questo scopo abbiamo la root directory.

La root directory possiede un’importante informazione sul file come il nome, l'estensione, gli attributi (archivio, directory, se è nascosto, di sola lettura, sistema e volume), la data e l’ora della creazione, l'indirizzo del primo cluster del file/directory dei dati e, infine, le dimensioni del file/directory. La root directory è memorizzata dopo l'ultima copia della File Allocation Table e prima di presentare i cluster dei dati. La struttura della root directory è indicata nella seguente tabella.

Root Directory Structure

Gli attributi hanno alcune maschere di bit nell’entrata della directory. Sono 01 per la sola lettura, nascosto per 02, 04 per il sistema, 08 per l’etichetta di volume, 10 per la sottodirectory, e il 20 per l’archivio. La data e l'ora memorizzano l'ultima volta che il file è stato modificato. Per quanto riguarda il Tempo i bit 15 a 11 rappresentano le ore, i bit 10 a 5 rappresentano i minuti e i bit 4 a 0 rappresentano i secondi diviso per due. Per quanto riguarda la Data i bit 15 a 9 rappresentano anno a partire dal 1980 al 2107, 8 bit per rappresentare Mese 5, e 4 a 0 bit rappresentano la il giorno. La sezione del primo cluster collega il file con la File Allocation Table. Questo numero punta al primo cluster contenente il file dei dati. Infine, la sezione Dimensioni contiene (in byte) le dimensioni dei file dei dati.

È possibile utilizzare le informazioni dalla directory principale per scrivere una varietà di funzioni per il vostro sistema integrato. Ad esempio, l'ora e la data di stampa di un sensore di dati in un logger dati.

Ora che si conosce la struttura di base del sistema FAT16, è possibile iniziare a sviluppare applicazioni per le quali gli utenti possono facilmente comunicare con il dispositivo integrato e un computer. Aggiungere un dispositivo di memorizzazione di massa come una scheda SD significa aumentare la flessibilità a qualsiasi dispositivo. Consuma molto scrivere il codice necessario per l'attuazione del sistema FAT16, nonché il codice per supportare la comunicazione con una scheda SD. La buona notizia è che ci sono molti software liberi e librerie a pagamento che si prendono cura dei codici al posto vostro. Tutto quello che bisogna fare è modificare il codice per adattare le piadinature specifiche e l'architettura del microcontrollore.

Ad esempio Microchip offre “File I/O Functions Using Microchip's Memory Disk Drive File System Library”, che è fondamentalmente il sistema FAT16 per alcuni dispositivi PIC. È possibile scaricare il codice sorgente e il report dell’applicazione da qui. Inoltre, in alcuni casi ci sono a disposizione moduli di hardware che implementano il sistema FAT per voi. Grazie a loro si risparmia il tempo di sviluppo, ma questi chip sono molto costosi e utilizzati in gran parte in dispositivi di archiviazione di massa USB. Personalmente trovo che siano uno spreco di denaro, dato che è relativamente semplice implementare il sistema FAT sul microcontrollore.



lunedì 25 maggio 2009

PIC: il basso costo rivoluzionario

L’evoluzione delle tecniche computazionali e di processamento dati moderne ha radici profonde nello sviluppo della tecnologia di processori sempre più complessi che si sono succeduti a ritmi forsennati nell’ultimo ventennio. Ma quello che viene ricordato come il primo microcontrollore programmabile a basso costo è il PIC (Peripheral Interface Controller), acronimo noto in ambiente elettronico per la sua semplicità, occupazione limitatissima di spazio e basso costo.

L’idea originaria del PIC venne fuori dalla General Instruments, storica società della Pennsylvania, USA che già negli anni cinquanta e sessanta produceva diodi e componenti elettronici avanzati. L’introduzione progressiva di chip logici avvenne negli anni sessanta, mentre il progetto del PIC (che originariamente era chiamato Programmable Intelligent Computer) fu del 1976.

Tutta la linea di microprocessori General Instruments venne nel 1989 trasferita in una nuova società dedicata e ultraspecializzata, la Microchip Technology Inc creata appositamente per sfruttarne il successo e che ne mantiene il famoso marchio fino ai giorni d’oggi.

I microcontrollori PIC erano basati su una architettura RISC (reduced instruction set code) che consentiva un efficiente uso di una istruzione per ciclo alla frequenza di clock di 20 MHz. Con bus dati e controllo da 8 bit e alta corrente (attorno a 20ma, oltre 10 volte superiore a quella dei concorrenti del tempo) su ogni pin di ingresso e uscita, tempo di latenza bassissimo (3 cicli di istruzioni) questo controller entrò sul mercato ad un prezzo basso e attirò subito un grandissimo interesse. Al modello iniziale Microchip iniziò ad aggiungere varianti e funzionalità avanzate, come una versione con convertitore A/D, comparatori e interrupts, una versione a 14 bit di optcode, successivamente (nel 2000) una versione a 16 bit e di recente una a 32 bit. La famiglia PIC10 venne sostituita progressivamente dalla PIC12, dalla PIC16 (ad oggi ancora forse la più famosa con i gloriosi PIC16×84), la PIC18, PIC24 e infine la recente PIC32.

Il grande successo dei PIC fu alimentato anche da una serie di tool di sviluppo sia ufficiali (l’emulatore PICMaster, il programmatore PIC pro II, l’IDE MPLAB) che sviluppati da una crescente comunità di appassionati (FreeRTOS, GPSIM, Ktechlab ecc). Si sono evolute nel tempo diverse versioni a partire da quella a ROM mascherata (non riprogrammabili), per arrivare a quelle CMOS OTP (one time programmable) fino alle più flessibili versioni con EPROM che consentiva la cancellazione tramite raggi ultravioletti e riprogrammazione, fino alle ultime con memoria flash riprogrammabile. I PIC sono al giorno d’oggi facilmente programmabili via seriale senza alcuna complessità e offrono un set da 35 istruzioni (per le versioni a basso costo) ad 80 istruzioni (per i PIC più avanzati).

Microchip ha con orgoglio annunciato l’anno scorso l’enorme traguardo del seimiliardesimo chip PIC venduto al febbraio 2008, in quella che ormai oggi è una famiglia di 500 microcontrollori usati in ogni genere di prodotti elettronici. È del mese scorso la notizia che la famosa rivista elettronica EE Times ha assegnato alla Microchip il premio come “Società dell’anno” nei premi 2009 Annual Creativity in Electronics. A 33 anni dall’uscita sul mercato del primo PIC un successo così lungo, costante e altisonante va accolto con un plauso per una fra le più grandi innovazioni fra i componenti a basso costo nei tempi moderni.


giovedì 21 maggio 2009

Buon compleanno Tetris

Chi non lo conosce? Venuto alla ribalta come videogioco da bar, dopo un po' girava sui Home Computer di quasi tutte le case. Ora lo si ritrova come gadget in molti apparecchi elettronici domestici, come ad esempio in alcuni decodificatori satellitali nei menù; a me è capitato di incontrarlo in un'apparecchiatura di telecontrollo.

NEW YORK - "Il successo di Tetris rimane un mistero anche per me. Di certo è uno di quei giochi dove tutto funziona esattamente come dovrebbe". Alexey Pajitnov, il programmatore russo che inventò il videogioco più famoso del mondo mentre lavorava allo sviluppo di un supercomputer per l'Unione Sovietica, è molto orgoglioso della sua creatura. Tetris festeggia in questi giorni il suo 25esimo compleanno e non è ancora passato di moda. Ogni giorno viene attivato da un milione di utenti su Facebook ed è una delle applicazioni più scaricate per l'iPhone. "E' questa la sua grande forza: è un'icona, popolare nel 2009 come come negli anni '90'', spiega all'ANSA Henk Rogers, game designer e imprenditore che nel 1989 riuscì a ottenere dal governo sovietico la licenza per vendere Tetris. (ANSA)

giovedì 14 maggio 2009

Computer con virus? Spyware?

Quante volte vi sarà capitato di notare comportamenti anomali del vostro computer e subito avete pensato che potesse essere infetto da qualche virus? Sicuramente più di una volta, specialmente da quando internet è entrato nelle case di tutti e con lui, un’incredibile molteplicità di virus.

In questo articolo, cercheremo di descrivere alcuni sintomi che si manifestano quando il nostro computer è infetto. Senza ombra di dubbio, il problema principale è l’enorme quantità di varianti in circolazione ognuna delle quali si presenta in diverso modo. Da non dimenticare che i sintomi solitamente prodotti da un virus, potrebbero manifestarsi per differenti motivi.

Solitamente, un sistema operativo non mostra problemi senza che ci sia una reale motivazione e nel caso in cui notiate un comportamento fuori dal comune, sarebbe raccomandabile analizzarlo con il vostro antivirus di fiducia (nel mio personale caso, utilizzo l’efficientissimo Eset NOD32, del quale consiglio l’utilizzo). Bisogna eseguire una scansione del computer di tanto in tanto visto e considerata la presenza di virus “dormienti” che non manifestano sintomi fin quando non vengono “svegliati” ed inizino in contagio.

Tenete in conto che tutti i sistemi operativi possono essere esposti a virus. Certo, ne esistono alcuni più sicuri, ma nessuno dei quali totalmente immune; esatto, esistono virus anche per sistemi GNU/Linux o MacOS). Molte volte i virus si installano in seguito ad azioni volontarie eseguite dall’utente, anche se può non sembrarvi logico, altre volte capita che l’utente forzi l’installazione di una determinata applicazione anche se avvertiti dall’Antivirus che l’archivio potrebbe essere infetto.

A continuazione di questo articolo, vedremo ora alcuni sintomi che potrebbero presentarsi sul nostro computer prima della possibile presenza di un virus, difficile poi da rimuovere:

Notate rallentamenti nel vostro computer
Questo è uno dei sintomi più diffusi, specialmente in presenza di Malware o Spyware. Il rallentamento del vostro sistema operativo può essere dovuto anche ad altri fattori, come ad esempio l’eccesso di archivi temporanei, troppi processi in esecuzione contemporaneamente o elevato carico durante l’avvio. In questo caso però, il rallentamento sarebbe graduale e non cosi violento.

Perdita ingiustificata di spazio nel disco
Questo è un effetto tipico dei virus di tipo Worm, che si riproducono fino al blocco del sistema. Bisogna tener presente che Windows crea una serie di archivi nascosti e di sistema, solitamente molto pesanti, anche della fattezza di alcuni Gb. Questi archivi occupano spazio sul disco, ma sempre entro i limiti e nell’unità che contiene il sistema operativo, non in altre.

Le funzioni di Windows non sono più funzionanti o accessibili
Qui bisogna accertarsi che non esistano fin dall’installazione, che non siano sintomi di una versione di Windows piratata, che avendo sempre funzionato, tutto d’un colpo non siano più funzionanti. L’ultima delle possibilità elencate potrebbe attribuirsi all’azione di un virus, come sistema di protezione dello stesso, visto e considerato che le funzioni che solitamente restano coinvolte sono quelle che potrebbero aiutarci ad eliminare il virus; tra queste il ripristino di sistema, l’editor di registro, l’accesso a livello amministrativo e simili.

Mancato caricamento dei servizi Windows
Un altro tipo d’attacco da parte dei virus. Quello che provoca l’arresto ed il mancato caricamento di alcuni servizi Windows.

Impossibilità ad eseguire il software antivirus, antispyware e antimalware
Questo è un sistema di difesa di molti virus, che impedisce l’esecuzione di qualsiasi programma che potrebbe attaccarli. Questo punto include l’impossibilità al download o all’installazione di eventuali software da loro ritenuti “pericolosi”.

Mal funzionamento della scheda video o del suono
Ovviamente anche schede video o audio possono avere problemi, ma a dire la verità è una cosa poco normale. In molti casi, la perdita dell’audio e del video possono essere attribuiti alla presenza di un virus.

Perdita delle unità USB o ottiche
Questo è un altro possibile sintomo dell’azione di un virus o di un malware. L’improvvisa impossibilità ad accedere ad unità USB o CD e DVD, specialmente se accade simultaneamente, può perfettamente attribuirsi all’azione di un virus. Può certamente essere un’avaria, ma visto che vengono controllati in maniera diversa e da diversi drivers, è un’eventualità abbastanza rara che smettano di funzionare contemporaneamente.

Traffico internet non giustificato
Un eccesso nel traffico della vostra rete. Senza giustificazione apparente, può essere un chiaro sintomo da infezione virus. E’ certo che il traffico internet è praticamente continuo, ma non si tratta di quantitativi eccessivi, e specialmente, non può provocare un significativo calo della velocità.

Apertura di pagine web non richieste
Questa dell’apertura non richiesta di pagine web fino al reindirizzamento verso diverse pagine web da quelle indicate, è un chiaro sintomo da infezione. I software che utilizzano internet iniziano a non funzionare o iniziano a farlo senza nessun motivo apparente. Questi problemi affliggono la maggior parte dei web surfer (navigatori internet)

Blocchi o riavvii improvvisi del computer
Un blocco del sistema può essere attribuito ad elevate temperature di funzionamento. Se le temperature rientrano nella media, molti blocchi o riavvii sono solitamente sintomi dell’esistenza di alcun tipo di malware.

Mancato avvio di Windows. Il sistema operativo non parte
Dovuto ad un errore nel sistema operativo, causato tuttavia nel maggior numero di casi da parte di virus. Bisogna sempre differenziare in questi casi l’impossibilità di avviare Windows, con l’impossibilità di avviare il computer o la possibilità di problemi nell’Hardware che potrebbero impedire l’avvio di Windows. Nell’ultimo caso tuttavia, saremmo quasi sicuramente avvertiti da richiami acustici del BIOS durante la fase d’avvio del computer.

Viene richiesto l’inserimento di password che non abbiamo mai impostato
Al 99% dei casi, è un virus a fare questi scherzi. Il problema si manifesta sempre per colpa nostra visto che l’accesso ai sistemi operativi è quasi sempre effettuato come Amministratori e non come semplici utenti. Inoltre, le password sono spesso poco sicure o anagrammate il che rende il tutto ancora meno sicuro.

Il sistema non permette l’esecuzione di determinati programmi
Salvo problemi causati da avarie hardware, che un programma “si rovini” è molto difficile. L’impossibilità all’esecuzione di un qualsiasi software che abbiamo abitualmente utilizzato fino ad oggi senza problemi, può essere un chiaro sintomo della presenza di qualche virus. Chiaramente più scontato se il danno non si limita all’esecuzione di un singolo software.

Conclusione:
Bene, come potete vedere, i sintomi che potrebbero segnalare la presenza di un virus sono molteplici e come detto in precedenza, esistono virus che non presentano nessun sintomo il che li rende ancora più pericolosi. Per questo motivo bisogna sempre prendere una serie di precauzioni.

  • Installare un buon antivirus (ne esistono di ottimi anche gratuiti)
  • Installare un buon antispyware e antimalware
  • Aggiornate regolarmente il vostro sistema operativo

Se utilizziamo un antivirus, mai ignorare un eventuale segnalazione di pericolo. Nel caso in cui utilizziate un router WiFi, utilizzare sempre una password e cambiare quella d’accesso al router settata per default. Cambiare ogni password impostata per default. Tenere sempre in considerazione che i danni causati ogni anno dai virus, si aggirano intorno ai milioni di dollari.

Come sempre, prevenire è meglio che curare

lunedì 11 maggio 2009

Bencmark più duttili

Spesso per calcolare le prestazione di un processore ci si affida a specifici programmi che però hanno un “difetto”: non danno un valore univoco che sia indipendente dalla piattaforma usata e dal Sistema Operativo.
Fortunatamente se vogliamo confrontare la pura potenza di calcolo di una CPU, senza preoccuparsi di fantasiose tabelle di conversione, ci può venire in contro un semplice programmino che calcola il PI Greco.
Super PI è il nome del programma che calcola le cifre decimali del pi greco, indicando il tempo impiegato dal computer. E’ un buon indice delle prestazioni di CPU e RAM.
E’ il più famoso benchmark per cpu da sempre, un programma che crea dipendenza da overclock! Solitamente il “metro di misura” è il calcolo di un milione di cifre dopo la virgola.
Purtroppo il programma è un po’ datato e non permette la parallelizzazione dell’elaborazione su più core, quindi su un quad core verrà sfruttato un solamente un singolo core.
Con questo programma hanno calcolato il più grosso numero di decimali, pari a oltre sei miliardi nel 1995.
Per saprene di più www.super-computing.org/.
Attualmente il record è detenuto da Yasumasa Kanada, che ha calcolato la bellezza di 1.241.100.000.000 cifre (1,2 bilioni) calcolate in più di 600 ore utilizzando 64 computer Hitachi SR8000/MPP.

venerdì 8 maggio 2009

Getire la RAM da BIOS

I BIOS delle schede madri presentano numerose voci dove ottimizzare la vostra memoria. Spiegheremo brevemente le opzioni, troverete i valori normalmente disponibili tra parentesi, quelli consigliati sottolineati. Vi riportiamo anche degli esempi di come determinate voci potrebbero chiamarsi in differenti versioni di BIOS; notate anche che non tutti i menu di BIOS offrono tutte queste opzioni.

Automatic Configuration (On/ Off) (DRAM Auto, Timing Selectable, Timing Configuring) Se volete configurare manualmente i vostri timing di memoria dovete disattivare la configurazione automatica della RAM.

Bank Interleaving (Off/ 2/ 4) (Bank Interleave) I chip di memoria DDR RAM constano di quattro banchi. Poter indirizzare contemporaneamente i quattro banchi con l'interleaving massimizzerà le vostre performance.

Burst Length (4/ 8) La voce Burst length specifica la quantità di blocchi di dati inviati per ciclo di trasmissione. Idealmente, una trasmissione riempirà una riga di memoria nella cache L2 che si trova nei moderni processori Pentium 4 e AMD, ossia 64 bit (otto pacchetti di dati).

CAS Latency tCL (1.5/ 2.0/ 2.5/ 3.0) (CAS Latency Time, CAS Timing Delay) Il numero di cicli di clock che passa dall'indirizzamento della colonna all'arrivo dei dati nel registro di output. Il produttore della memoria elenca le migliori impostazioni possibili come punteggi CL

Command Rate CMD (1/ 2) (Command Rate, MA 1T/2T Select) Il numero di cicli di clock necessari per l'indirizzamento della zona richiesta nel modulo di memoria e nel chip. Se avete tutti i banchi di memoria impegnati, dovreste impostarlo a 2, con conseguente perdita in termini di prestazioni.

RAS Precharge Time tRP (2/ 3) (RAS Precharge, Precharge to active) Il numero di cicli di clock necessari per precaricare i circuiti in modo da poter determinare la riga.

RAS-to-CAS Delay tRCD (2/ 3/ 4/ 5) (RAS to CAS Delay, Active to CMD) Il numero di cicli di clock che passano dalla determinazione dell'indirizzo della colonna all'invio dello stesso. Impostare questa voce a due può incrementare le prestazioni fino al quattro percento.

Row Active Time tRAS (5/ 6/ 7) (Active to Precharge Delay, Precharge Wait State, Row Active Delay, Row Precharge Delay) Il ritardo che deriva dall'indirizzamento consecutivo di due righe diverse all'interno dello stesso chip.

Memory Clock (100/ 133/ 166/ 200 MHz) (DRAM Clock) Specifica la velocità di clock del bus di memoria. Questa frequenza normalmente è relativa al clock del front side bus. La tecnologia DDR (double data rate), raddoppia il data rate indicato dall'effettiva velocità del bus.

lunedì 13 aprile 2009

Bluetooth 3.0

Precedentemente chiamato Bluetooth UWB, ci si aspetta che il nuovo Bluetooth 3.0 sia 18 volte più rapido della versione attuale.

Come tecnologia di trasferimento dati, il Bluetooth è rimasto all'ombra del WiFi ed il suo uso si è limitato ad applicazioni come, auricolari Bluetooth o freehands per cellulari. Si è sempre considerato che l'utilizzo per connessioni più serie, come il trasferimento di immagini da una camera digitale ad un PC, la larghezza di banda non fosse sufficiente. Ma questo scenario potrebbe cambiare con l'arrivo di Bluetooth 3.0 perché rivaleggerebbe con la larghezza di banda di Wireless USB e supererebbe a quello di WiFi.

Bluetooth SIG, il gruppo che sta dietro allo sviluppo dello standard Bluetooth e che è appoggiato da Ericsson, potrebbe presentare il nuovo standard già questo mese. Già nel maggio di 2005 Bluetooth SIG annunciò che stava lavorando ad una versione Bluetooth con un alto trasfert dati, basato sulla tecnologia UWB (Ultra Wide Band). Questa nuova tecnologia Bluetooth utilizzava sia la banda dei 2,4GHz che quella dei 8GHz di UWB.

Mentre il Bluetooth 2.0 +EDR, offre una velocità transfert dati di 3Mbps per distanze brevi, si crede che Bluetooth 3.0 possa raggiungere una velocità di transfert di 480Mbps, paragonabili a USB senza fili, sulla stessa distanza. Aumentando la distanza oltre a nove metri, la velocità si assesta sui 53,3Mbps.

Al momento non si sa di quanto aumenterà il prezzo di un prodotto che includa questo nuovo standard, anche se molto probabilmente non si vedranno nuovi hardware prima del 2010.

sabato 11 aprile 2009

Cenni di codifica e cifratura

Il problema di codificare o cifrare un messaggio è stato affrontato, generalmente per usi militari, attraverso tutta la storia della civiltà umana.

Plutarco descrive la scitala lacedemonica come un codice di cifratura in uso dai tempi di Licurgo (IX sec a.C.), circa tremila anni fa. Si trattava di un dispositivo di cifratura costituito da un bastone e da un nastro di cuoio avvolto a spirale cilindrica, su cui il messaggio veniva scritto per colonne. Sul nastro srotolato le lettere risultavano trasposte in modo tale che solo l'adozione di un bastone identico a quello originariamente usato per la scrittura del messaggio consentiva di ricomporre il testo.

Il primo trattato di crittografia risale al 400 a.C. circa, ad opera del generale arcadico Enea il Tattico, in cui vengono descritti prevalentemente sistemi di meccanici di cifratura analoghi alla scitala lacedemonica.

Con la civiltà dei Greci e l'Impero Romano, la cifratura di un messaggio avveniva per semplice sostituzione o traslitterazione. I codici di Cesare e di Augusto erano infatti basati proprio su questa tecnica, adottando l'alfabeto romano. Il codice di Atbash, basato sull'alfabeto ebraico, era una versione ancor più semplificata di codice per sostituzione: la prima lettera dell'alfabeto veniva scambiata con l'ultima, la seconda con la penultima e così via. Polibio con la sua scacchiera, ideò un metodo per sostituire lettere a coppie di numeri. La scacchiera di Polibio era costruita inserendo le lettere dell'alfabeto in una matrice rettangolare e sostituendo nel messaggio la riga e la colonna corrispondente ad ogni lettera.

Fig.1 Esempio di scacchiera di Polibio

La figura 1 è stata costruita utilizzando il metodo proposto da Polibio. Ad esempio, il termine (amore) viene codificato sostituendo il numero di riga e colonna per ogni lettera che lo compone, come in figura 2.

= 1113113421

Fig.2 Esempio di codifica di Polibio

A dispetto dell'apparente semplicità della codifica di Polibio, tale metodo suggeriva una interessante soluzione al problema della trasmissione del messaggio: una frase poteva venire trasmessa a distanza, infatti, mediante segnali luminosi.

Attraverso tutto il medioevo poi, la crittografia veniva utilizzata per scopi militari o diplomatici con varianti del metodo della sostituzione, utilizzando per lo più abbreviazioni, o nomenclature, di nomi, luoghi.

Dal XVI secolo, i codici del Della Porta, Bellasio, Alberti e Vigenere introducono, pur se con metodologie diverse, il concetto di chiave, talvolta definita verme letterale, per il controllo del processo di cifratura. L'idea è di utilizzare una sequenza di caratteri dedicata al fornire informazioni necessarie e sufficienti, unita ad un metodo, senza la quale sarebbe impossibile riottenere il messaggio originale. Ad esempio, l'Alberti utilizzava delle lettere di controllo inserite nel testo cifrato per determinare quale lista di lettere utilizzare per la cifratura locale del brano; Della Porta e Bellasio utilizzano la chiave come strumento di generazione del messaggio codificato; Vigenere unisce il metodo di sostituzione al concetto di chiave, utilizzando una matrice quadrata di sostituzione e la chiave come strumento di selezione della riga da utilizzare.

Thomas Jefferson, presidente degli Stati Uniti ed autore della dichiarazione di Indipendenza ideò un codice di cifratura meccanico, mediante un cilindro costituito da 36 dischi con le 26 lettere dell'alfabeto in ordine sparso. Il codice è considerato ancor oggi sicuro.

Ma è con l'avvento del XX secolo, della guerra e, quindi, dei calcolatori che la vita dei ideatori di codici si è fatta più complessa. Tutti i sistemi ideati fino ad allora avevano l'inconveniente di essere obsoleti non appena il metodo di decifrazione, meccanico o cartaceo che sia, fosse reso pubblico. Ottenuto il bastone originale nella scitala lacedemonica o il cilindro di Jefferson chiunque sarebbe in grado di procedere alla decodifica.

Alan Turing, matematico e padre de facto dell'informatica, è stato al centro di epiche vicende di decrittazione, a colpi di macchine calcolatrici sempre più potenti ed algoritmi sempre più efficaci che hanno costellato la storia della crittografia dalla seconda guerra mondiale in poi.

La vera sfida del ventesimo secolo era, quindi, l'ideazione di un codice per cui anche il più potente dei calcolatori impiegasse millenni per la decodifica. Il problema era, infatti, che i metodi ideati non erano in grado di resistere ad una analisi esaustiva di un calcolatore sufficientemente potente da tentare tutte le combinazioni possibili.

Nel 1975 IBM ha introdotto il Data Encryption System, o DES, un codice a chiave basato su una sequenza di sostituzioni e trasposizioni operate in base ad una chiave di 64 bit. Tale metodo fu al centro di un'aspra ed accesa polemica perché il numero di chiavi distinte a 64 bit è pari a 264, ulteriormente ridotto a 256 considerando che 8 bit della chiave sono destinati al controllo: un numero di combinazioni alla portata di molti computer moderni.

Il DES differisce dagli altri metodi per il fatto di non dover essere mantenuto segreto, il fatto che venga reso pubblico non garantisce affatto la possibilità di decodificare i messaggi. All'IBM va riconosciuto, infatti, di aver ideato un algoritmo sufficientemente complesso e caratterizzato da importanti vantaggi quali:

  1. E' di dominio pubblico
  2. La decodifica è interamente legata alla chiave
  3. E' sufficientemente resistente ad un attacco esaustivo mediante calcolatore

La crittografia a chiave pubblica secondo Rivest, Shamir ed Adlemann

Nel 1978, R. Rivest, A. Shamir, L. Adleman, pubblicarono l'articolo "A Method for Obtaining Digital Signatures and Public-key Cryptosystems", destinato dare una soluzione al problema in grado di resistere alla potenza dei calcolatori per parecchi anni a venire. Il metodo di cifratura venne codificato in un algoritmo che prese il nome dalle iniziali dei tre matematici: algoritmo RSA.

Gli algoritmi di crittografia a chiave pubblica, come RSA, sono caratterizzati da una coppia di chiavi dette pubblica e privata. La chiave pubblica va distribuita ai destinatari dei messaggi e la chiave privata va mantenuta segreta dal mittente. Con la chiave privata vengono decodificati solo i messaggi codificati da chi possiede la chiave pubblica corrispondente. Le chiavi sono generate in modo tale che non sia possibile calcolare la chiave privata a partire da quella pubblica.

Supponiamo che due persone, A e B, debbano scambiarsi un messaggio:

  1. B genera due chiavi, una pubblica e l'altra privata
  2. B mantiene la chiave privata per se e comunica a A la chiave pubblica
  3. A codifica il messaggio con la chiave pubblica di B e lo invia
  4. B riceve il messaggio da A, e lo decodifica con la propria chiave privata

Prima di descrivere l'algoritmo RSA è necessario un richiamo sull'Aritmetica Modulare.

Supponiamo di avere a disposizione solo n cifre, diciamo 12, e di disporle come in un quadrante di orologio. Applichiamo i concetti di addizione e moltiplicazione usuali, salvo che, al superare il 11, ricominciamo a contare circolarmente da 0.

Nell'aritmetica usuale l'addizione

7 + 8 = 15

diviene, nell'aritmetica modulo 12

7 + 8 = 3 (mod 12)

ci si convince facilmente di ciò osservando il proprio orologio ed assegnando le cifre come da fig. 3

Fig. 3 Aritmetica modulo 12 sul quadrante di un orologio

Così aggiungendo 8 al 7, si arriva al 3.

Nell'aritmetica modulo n la moltiplicazione è definita in modo analogo all'aritmetica ordinaria come:

a*b (mod n) = a+a+a+...<b volte>...+a (mod) n

e lo stesso vale per la potenza

ab (mod n) = a* <...b volte ...>* a (mod n)

L'algoritmo RSA è quindi definito come segue:

Generazione delle chiavi pubbliche e private

  1. Siano p e q due numeri primi molto grandi
  2. sia m = (p-1)(q-1)
  3. sia n = pq
  4. si trovi un numero d non necessariamente grande, relativamente primo ad n
  5. si trovi e tale che de = 1 (mod m)
  6. la chiave pubblica è la coppia (d,n)
  7. la chiave privata è la coppia (e,n)

Codifica di un messaggio M

Il messaggio codificato è C(M) = Md (mod n)

Decodifica di un messaggio C

Il messaggio decodificato è M (C) =Ce (mod n)

Pur conoscendo il meccanismo di codifica, la decodifica di un messaggio senza conoscere la chiave privata e è un operazione per cui anche il più potente dei calcolatori impiegherebbe secoli, riconducendo a noti problemi intrattabili nella scienza dei calcolatori, infatti:

  1. Ignorando la chiave pubblica bisognerebbe calcolare la radice di ordine d , in aritmetica modulo n di M. Problema intrattabile.
  2. Anche conoscendo la chiave pubblica d, il calcolo di e implicherebbe la necessità di trovare i numeri primi p e q che, se scelti nell'ordine di 10200, producono di nuovo un problema intrattabile.

Si noti che un algoritmo come RSA può difficilmente divenire obsoleto perché riconduce a problemi la cui tecnica di soluzione è nota, ma coinvolge necessariamente un tempo di calcolo enorme, allo stato attuale della ricerca.

Privacy Policy

This site uses Google AdSense for advertisements. The DoubleClick DART cookie is used by Google in the ads served on publisher websites displaying AdSense for content ads. When users visit an AdSense publisher's website and either view or click on an ad, a cookie may be dropped on that end user's browser. The data gathered from these cookies will be used to help AdSense publishers better serve and manage the ads on their site(s) and across the web. * Google, as a third party vendor, uses cookies to serve ads on this site. * Google's use of the DART cookie enables it to serve ads to you users based on your visit to this site and other sites on the Internet. * Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy. We use third-party advertising companies to serve ads when you visit our website. These companies may use information (not including your name, address, email address, or telephone number) about your visits to this and other websites in order to provide advertisements about goods and services of interest to you.

Questo sito utilizza Google AdSense per la pubblicità. Il DoubleClick DART cookie è utilizzato da Google per gli annunci pubblicati su siti web publisher AdSense per i contenuti, visualizzazzandone gli annunci. Quando un utente visita un sito web publisher AdSense e clicca su un annuncio, un cookie può essere rilasciato a tal fine, nel browser dell'utente. I dati raccolti da questi cookie verranno utilizzati per aiutare i publisher AdSense a servire meglio e a gestire gli annunci sul loro sito(i) in tutto il web. * Google, come parte di terzo fornitore, utilizza i cookie per la pubblicazione di annunci su questo sito. * L'uso del DART cookie consente a Google di pubblicare annunci per gli utenti, e si basa sulla vostra visita a questo sito e su altri siti su Internet. * Gli utenti possono scegliere di utilizzare i DART cookie visitando i contenuti sulla privacy nell'annuncio di Google. Usiamo società di pubblicità per la pubblicazione di annunci di terze parti, quando si visita il nostro sito web. Queste aziende possono utilizzare le informazioni (non compreso il vostro nome, indirizzo, indirizzo e-mail, o numero di telefono) sulle visite a questo e ad altri siti web, al fine di fornire la pubblicità su beni e servizi di vostro interesse.