Categoria: Dissertazioni

“Hello World”… le prime parole di ogni programma (in tutti i linguaggi di programmazione)

Chiunque abbia mai programmato in un qualsiasi linguaggio di programmazione lo sa!
La prima cosa da fare è imparare come scrivere “Hello World” (a prescindere dal fatto che lo “standard output” sia il monitor, una pagina web o una stampante).

Sul sito The Hello World Collection c’è la più vasta raccolta di linguaggi di programmazione e di esempi su come un nuovo programma debba salutare il mondo alla nascita.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/hello-world-le-prime-parole-di-ogni-programma-in-tutti-i-linguaggi-di-programmazione/

La mia prima CPU – il “protopentium” Intel DX4

Il primo computer mi è stato regalato durante i primi anni delle superiori da mia nonna (era circa il 1993/1994). L’acquisto fu fatto alla Computer Line di Reggio Emilia che, all’epoca, era la boutique dell’informatica in provincia.

C’erano ancora le lire e i pc erano ancora abbastanza costosi, soprattutto alcuni componenti che adesso hanno un costo irrisorio (come i lettori CD-rom). Mi ricordo infatti che per non gravare troppo sul costo del regalo ho deciso di non comprare subito il lettore e demandare l’acquisto ad un momento futuro (poi mai acquistato). Anche se in realtà per il mio PC non comprai mai un lettore CD da inserire nel case, ma ne trovai uno abbastanza grosso (per intenderci delle dimensioni di un videoregistratore) che potevo collegare al mio computer tramite la porta parallela.
La RAM e il disco fisso erano ancora misurabili in MB e la scheda grafica VGA era fantascienza. Il computer montava il sistema operativo MS-DOS (la versione 5 e poi la versione 6) e avevo installato Microsoft Windows 3.11 for Workgroup (che a differenza della precedente versione Windows 3.1 includeva anche il supporto per le nascenti reti… da qui la definizione “for workgroup”). Il PC si avviava e veniva subito mostrata la shell DOS; per avviare Windows (che all’epoca era un programma e non un vero e proprio sistema operativo) era necessario lanciare il comando win.

In quel periodo stava uscendo sul mercato anche il mitico processore Intel Pentium (non chiamato 586 per motivi di marketing / problemi con i concorrenti come AMD) che però, le prime versioni, presentavano un famoso bug “Pentium FDIV bug”. L’ho definito mitico perchè è stato il primo processore “di massa” che ha portato (insieme a Windows 95) il PC dentro le case delle famiglie.
Per questo motivo mi piaceva chiamare il mio processore un “proto-pentium” perchè era l’ultima versione della famiglia 486 prima dell’avvento della famiglia 586.

Il processore 486DX4 era la versione a 100 MHz (frequenza a 33,3 MHz con un moltiplicatore pari a 3) a 32 bit con una cache di 1° livello di 8 kb.

Case e monitor erano del classivo colore “grigio apparato informatico” che tanto andava di moda.

Ho smanettato molto con questo PC e, sebbene molto arretrato come performace rispetto agli attuali personal computer, mi ha permesso di esplorare a fondo il mondo dell’informatica. Negli strumenti di programmazione che utilizzavo durante le superiori (come i compilatori / IDE della Borland) erano infatti disponibili numerosi programmi per lavorare a basso livello con i sorgenti e le DLL. Se non ricordo male era già possibile installare le prime versioni di DOOM e DOOM 2 (della ID Software) su 5/8 floppy disk.

Insomma… un inizio con il botto…

Permalink link a questo articolo: http://www.andrea.rustichelli.name/la-mia-prima-cpu-il-protopentium-intel-dx4/

Dato vs. Informazione

Ipotizziamo di indossare un orologio particolarmente evoluto che, ogni ora, identifica la nostra posizione e legge a voce alta la temperatura esterna.
Ogni ora ci comunica la temperatura esterna.
La temperatura esterna è un dato.
A che ora il dato diventa informazione?
Dipende.
Da cosa dipende?
Dipende a che ora ci stiamo vestendo per uscire. Solo in quel momento il dato della temperatura esterna diventa informazione perchè ci permette di attuare una scelta su quali vestiti indossare in funzione della temperatura esterna.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/dato-vs-informazione/

I DRM in Calibre

Questo post non vuole essere un incitazione a rimuovere i DRM dai file comprati con Adode Digital Edition, bensì vuole essere una guida per chi volesse alcuni chiarimenti tecnici su come rendere compatibile tale formato con gli eBook reader che non supportano questo formato (o i sistemi Linux senza Vine e senza il programma di Adobe installato).

Innanzi tutto, Adobe Digital Edition non è compatibile con Linux (a meno che non si voglia utilizzare Vine, cosa che io non ho fatto), e quindi è necessario lavorare in ambiente Mac o Win. Io ho scelto, ovviamente, Windows 7 per fare queste prove. Sul PC è installato Adobe Digital Edition con relativa attivazione del profilo.

Collegarsi al sito Apprentice Alf’s Blog giusto per capire di cosa stiamo parlando. Sul sito troveremo il collegamento al sito dove scaricare l’apposito plug in per Calibre che, con ogni probabilità, punterà a questo sito. A questo punto è necessario decomprimere il file .ZIP e installare il plug in direttamente da Calibre andando nella sezione Preferenze. Ricordo che per funzionare correttamente sul PC deve essere installato Adobe Digital Edition tramite Vine altrimenti il plugin per Calibre non sarà in grado di funzionare.

Devo essere sincero che non ho trovato nessun utilità nel plug in… però nei file Pyton contenuti nella cartella del plug in sono stati molto utili. Ma vediamo i dettagli.

Ho scaricato il Pyton 2.7 e l’ho installato sul pc. A installazione completata ho scaricato e installato il modulo PyCrypto.

Quindi, ricapitolando, a questo punto abbiamo Windows 7 con installato Adobe Digital Edition attivato, Pyton, il modulo PyCrypto, il plug in DeDRM decompresso e il file in formato .PDF o .EPUB protetto da DRM. Una volta importato il file .acsm all’interno di Adobe Digital,Edition è necessario inserire l’utente e la password per scaricare il file corrispondente. Tutti i libri protetti da copyright si trovano all’interno della sezione Libreria. è necessario selezionare un file e premere il tasto destro per selezionare l’opzione Mostra il file in esplora risorse in modo da aprire la cartella del,computer che contiene i file con estensione .epub con i DRM.

Eseguendo i 3 programmi Pyton presenti nel plug in DeDRM (che è possibile trovare cercando nelle sottocartelle) denominati:

  • adobekey.py
  • ineptpdf.py
  • inptebup.py

è possibile rimuovere il DRM dai file.

Eseguendo il programma adebekey.py viene visualizzato il percorso del file .DER che contiene le informazioni del certificato digitale di Adobe. Una volta individuato il file .DER è possibile copiarlo in un’altra cartella come un normalissimo file.

Rispettivamente i programmi ineptpdf.py e inptepub.py servono per rimuovere il DRM dai file .PDF o ,EPUB. Lanciando ogni programma vengono richiesti 3 parametri: il percorso del file .DER, il percorso del file di input e il percorso del file di output senza il DRM.

Una volta completata l’operazione viene prodotto un file identico al primo ma senza il DRM e quindi utilizzabile su quei dispositivi che non gestiscono correttamente il certificato di Adobe Digital Edition (come ad esempio Calibre per gli ambienti Linux).

Permalink link a questo articolo: http://www.andrea.rustichelli.name/i-drm-in-calibre/

Cosa mi sta succedendo?

Oggi ho vissuto la seguente esperienza.

Un collega, appassionato di montaggi video in 4K registrati con il drone, mi dice che il suo computer scatta ed è parecchio lento nell’aprire e modificare i file video (che hanno la dimensione di circa 1,2/2 GB). Ok, detta così è troppo semplice, gli chiedo di portarmi il portatile così provo a dare un occhio per capire quale sia il reale problema.

Mi porta il suo computer e, nonostante abbia un paio di anni, è equipaggiato con un processore Intel i7, scheda grafica dedicata ATI e 12 GB di ram. Sistema operativo Windows 8 nativo (quello già installato al momento dell’acquisto). Provo a smanettarci un po’ e capisco subito che il sistema operativo è piantatissimo. Ho provato anche ad installare VLC (che generalmente fornisce ottimi risultati in termini di stabilità e velocità rispetto a Media Player) ma il problema è del sistema operativo. Lentissimo, piantatissimo, inutilizzabile.

Svengo

Poi mi riprendo, mi guardo in giro, poi lo fisso negli occhi e gli dico: “Non l’ho mai detto a nessuno, ma se fossi in te comprerei un Mac”.

Sono svenuto nuovamente.

Morale della storia: se uno è uno smanettone può provarci a mettere mano al pc e provare a reinstallare da 0 una versione non OEM di Windows oppure provare a installare una qualsiasi distro di Linux e incrociare le dita per trovare i programmi con le stesse funzionalità di quelli utilizzati in ambiente Microsoft. Però alla fine, comprando un Mac, potrebbe risolvere velocemente il problema visto che i programmi per la gestione dei file multimediali abbondano su questo sistema operativo. Per me è stato un modo per dare un ottimo consiglio senza dover metterci le mani perchè poi ho aggiunto: “Però per il Mac non posso aiutarti perchè è un sistema che non conosco (e che non voglio conoscere)”.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/cosa-mi-sta-succedendo/

Vizi e virtù di un programmatore

Alla facoltà di ingegneria informatica di Modena ho appreso, per la prima volta, che la pigrizia è una dote fondamentale per i programmatori. Il concetto è abbastanza semplice… se c’è già un programma che funziona bene, è inutile cercare di fare un programma che faccia la stessa cosa… o si usa il programma esistente o si cerca di migliorarlo/modificarlo per “piegarlo” alle proprie esigenze. Questa è una caratteristica fondamentale che ha, fra le altre cose, ispirato le librerie per la programmazione (API). Se poi uno usa un ambiente Linux, sa benissimo che utilizzando la shell e i programmi disponibili nel sistema operativo, può fare qualsiasi cosa combinandoli insieme senza dover riscrivere i programmi base.

Facendo qualche ricerca in internet ho trovato questo sito che conferma questa teoria… e inoltre vengono individuate altre due caratteristiche che i programmatori devono possedere che sono l’impazienza e la tracotanza.

L’elenco delle tre virtù di un programmatore sono state codificate da Larry Wall, l’inventore del linguaggio di programmazione Perl (pagina Wiki e sito ufficiale)… programmatore con un grande umorismo…

Permalink link a questo articolo: http://www.andrea.rustichelli.name/vizi-e-virtu-di-un-programmatore/

Il mio rapporto con i social network

Non è che odio i social network.

Cioè… alla fine sono presente su tutti i principali social network, ma non li frequento attivamente.

Il problema è che sono pieni di tag, di slogan, di hastag (che poi non sono altro che tag con un nome più accattivante) e di vuoto.

I social network partono bene, ma poi si perdono… sono pochi quelli che continuano a mantenere un certo “appeal” nel tempo. Un esempio su tutti Facebook (che secondo me tra 3 anni da ora non ci sarà più)… o G+ che non è neanche decollato. All’inizio, su Facebook, tutti postavano qualcosa di originale e personale… adesso ci sono solo dei link a dei link e ad altro materiale spazzatura presente in giro per la rete (che lucra sul traffico generato).

E poi sono drammaticamente vuoti di contenuti interessanti. Se si ricerca qualcosa (ad esempio per interesse personale, per hobby, perchè si vuole trovare una soluzione ad un problema, ecc.), si verrà reindirizzati verso siti, blog, forum, newsgroup ma sicuramente non verso un social network, perché li è impossibile trovare contenuti degni di nota.

Ecco, questo penso che sia il problema principale dei social… devono essere utilizzati solamente per scopo “ludico”.

Quindi massimo rispetto per tutte quelle persone che perdono tempo a scrivere e mantenere attivi i siti e i blog sparsi per la rete. Conosco benissimo quanto tempo e passione ci vuole…

Permalink link a questo articolo: http://www.andrea.rustichelli.name/il-mio-rapporto-con-i-social-network/

Buon compleanno Negroni

La settimana che va dal 24 al 30 giugno 2019 si festeggieranno i 100 anni del Negroni, il famoso cocktail italiano.

Vorrei rendere omaggio al mio cocktail preferito (chi mi conosce sa perfettamente che è il mio preferito) ricordando uno dei negroni più buoni bevuto recentemente e quello peggiore mai bevuto (e forse coincide con il peggiore mai realizzato).

Fermo restando che il miglior negroni, senza paura di essere smentito, era quello che veniva preparato intorno agli anni 2000 al famoso Planet di Reggio Emilia. Quando partivo da Campagnola chiamavo i miei amici a Reggio e, sfruttando l’happy hour, me ne facevo prendere un paio. I baristi facevano esattamente quello che dovrebbe essere fatto per la preparazione di questo nettare.

Bicchiere tumbler, ghiaccio, fetta di arancia. Poi prendevano le tre bottiglie e le versavano contemporaneamente fino a riempire il bicchiere. Poi prendevano una cannuccia nera, la tagliavano in due e le inserivano nel bicchiere. Puro piacere.

Veniamo ad uno degli ultimi migliori Negroni. L’ho bevuto al Berlin Marriott Hotel (la prima foto ritrae proprio quel negroni). Conservato in una simpatica botticella di legno, possedeva sapori e aromi unici.

Mentre il peggio negroni mai bevuto e forse mai prodotto l’ho bevuto a Lanzarote in un hotel 5 stelle. Essendo un hotel internazionale pensavo di trovare un Negroni all’altezza del posto e invece il barman ha preso i 3 ingredienti, li ha uniti un uno shacker e, davanti ai miei occhi allibiti, ha iniziato a shackerare come se non ci fosse un domani. Poi ha versato l’intruglio in un bicchiere con una fetta di limone. Ovviamente i 3 ingredienti si sono mixati un un modo assolutamente osceno, perdendo il colore che deve avere il Negroni e la fetta di limone dava quell’acidità fastidiosa in modo da rendere ancora più indimenticabile la bevuta di quella improvvisata medicina.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/buon-compleanno-negroni/

La vita perfetta

Quello che riporto di seguito è un articolo che avevo pubblicato, se non ricordo male, su borotalcol.org… oppure su una precedente versione del mio sito basata sul CMS Serendipity. In ogni caso lo ripropongo…


Molto probabilmente queste righe sono il frutto della serata che sta iniziando. Per chi non lo sapesse oggi è venerdì. Sono a casa da solo, i parents sono fuori e sono davanti al pc con un cuba libre fatto a mano con tanto di lime e zucchero di canna. Spero di riuscire e postare le foto della preparazione nei prossimi 3 anni. Colonna sonora: Hotel Costes. Puro polleggio. Mi accorgo solo adesso che il titolo del post e la descrizione di questo inizio serata possono portare il lettore a facili accostamenti… eppure non è mia intenzione. La vita perfetta richiamata dal titolo non è la mia, bensì quella di alcune persone che si ha la fortuna (o la sfortuna) di incontrare. Quelli che magari subito non ti danno confidenza ma poi basta poco per rovesciarti addosso confidenze e segreti che tu guarderesti bene dal divulgare. Quelli che tu dici una cosa e loro dicono di aver vissuto una esperienza simile sulla loro pelle, però infinitamente migliore. Quelli che hanno sempre un mare di ragazze ai loro piedi. Quelli che non devono mai attaccare gancio con le ragazze, perchè tanto sono le ragazze che ci provano (in modo palese e sensuale) con loro. Quelli che sono stati in posti migliori dei tuoi. Quelli che entrano nei locali che tu vedi solo dalla fine della fila perchè tanto non ti faranno entrare. E poi mi viene in mente Paperino. Un racconto dove lui immaginava una sua vita perfetta. Dirigente di una importante azienda, sposato con Paperina, una lussuosissima macchina (e non la vecchia 313), Zio Paperone in fase di pensionamento che gli avrebbe lasciato tutta la sua immensa fortuna… …una vita perfetta… buca sui campi da golf al primo tiro… vittoria in ogni gara con i motoscafi… ogni agio e ogni lusso possibile… mai una cosa storta… …poi però inizia a diventare apatico, grasso, insofferente, annoiato… …si sveglia dal sogno e la prima cosa che chiede a Zio Paperone è di essere messo su un aereo diretto al polo nord per risolvere i soliti problemi dello Zione… fin che c’è decide di prendere l’aereo più scassato… giusto per essere sicuro di avere dei problemi già durante il viaggio… Il perdente… ecco una figura sottovalutata ma mitica… Quanto mi piacciono i perdenti… quelli che ci provano… i Paperino della situazione. Quelli che si godono la vita in ogni momento perchè è la vita che li mette alla prova. E’ la vita che gli tira dei pugni nello stomaco. Quelli che le ragazze le devono inseguire… Quelli che rimangono fuori dai locali perchè non hanno la camicia… Quelli che si impegnano ma che falliscono… Quelli che non hanno la macchina nuova ma non si fanno problemi a parcheggiarla dove ce n’è bisogno… Quelli che quando una ragazza gli dice “Andiamo?” loro sono talmente ubriachi che vanno a smarrirsi in un non meglio identificato punto della spiaggia… Quelli che come il coyote non smettono mai di provarci e si rialzano con le ferite ancora doloranti ma con la voglia di continuare a giocare… Perchè a me i perdenti sono sempre stati simpatici… quando ti raccontano le loro avventure nascondono dietro il loro timido sorriso il piacere per averci provato ed aver fallito… quella piacevole sensazione che ti fa sentire un eroe anche se, in fondo, non hai fatto nulla di speciale. In attesa della prossima caduta!


La foto che avrei sempre voluto utilizzare per questo articolo era la vignetta finale del racconto di Paperino citato nel post. Ma non sono mai riuscito a recuperarla, per questo motivo ho utilizzato la foto del cuba libre che avevo preparato quel venerdì sera citato nel testo.

Questo post è dedicato a Paperino. Con me nella foto e co-autore del blog borotalcol.org.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/la-vita-perfetta/

Total Digital Experience

Ormai sappiamo tutti cos’è la “customer experience”… è una delle espressioni maggiormente utilizzate in organizzazione, marketing, gestione aziendale, organizzazione lean, ecc. ecc.
Ma ai nostri giorni la “customer experience” (è inutile affermare il contrario) deriva da una sempre maggiore informatizzazione dei processi e delle modalità di interazione tra il cliente e la società fornitrice del bene/servizio. Sia ben chiaro che la “customer experience” è anche altro… ma comunque poco altro rispetto all’informatica.

E come diceva un mio professore alla facoltà di ingegneria informatica:

“un programma o funziona o non funziona. E se un programma funziona… funziona per tutti.”

Questa frase mi ha sempre fatto riflettere, soprattutto quando si fanno interventi software volti a migliorare la “customer experience”. Trovo riduttivo infatti ricondurre uno sviluppo software al soddisfacimento dei bisogni o per aumentare la soddisfazione dei clienti. Se uno sviluppo software funziona, funziona sia per i clienti sia per i clienti interni (ovvero coloro che all’interno delle società si occupano delle attività oggetto di sviluppo). Proprio perché se uno sviluppo software viene fatto bene, con logica, con coerenza e con un obiettivo ben definito, i vantaggi non sono limitati al cliente “esterno”, ma si propagano (magari in modo ridotto) anche sui “worker” (ovvero coloro che agiscono il processo che ha beneficiato dell’intervento software). Ecco che in questo caso allora i “worker” diventano veramente clienti “interni” nel senso che anche loro beneficiano dell’intervento di evoluzione software.
Beh quindi a questo punto mi chiedo se abbia ancora senso parlare di “customer experience”. Secondo me i benefici dell’intervento devono essere riassunti in questo modo:”

“customer experience” (anche detta “internal customer experience”) + “worker experience” (anche detta “external customer experience”) = “total digital experience”

Proprio perchè l'”experience” migliora per tutti gli attori coinvolti nel processi oggetto di sviluppo e la natura dell’intervento è (ormai quasi sempre) puramente digitale.

Come ultima cosa, vorrei farvi notare come questo sia il post che, a livello mondiale, ha il maggior numero di ” (doppi apici).

Permalink link a questo articolo: http://www.andrea.rustichelli.name/total-digital-experience/

La nascita del Vero Uomo 2.0

Se in epoche passate, dove l’informatica era una materia conosciuta da pochi eletti, il Vero Uomo utilizzava sistemi Unix, adesso, dove  l’informatica è diventata una sottocategoria dell’elettronica di consumo, il Vero Uomo 2.0 utilizza (anche) Windows. E il Mangiatore di Quiche che fine ha fatto? Esiste ancora? Si, il Mangiatore di Quiche esiste ancora e usa un qualsiasi prodotto della Mela o un Tablet (di qualsiasi marca) in quanto li considera entrambi soluzioni informatiche avanzate; non si accorge che stanno uccidendo la Vera Informatica.

L’informatica di consumo (che è quella che piace ai Mangiatori di Quiche) è diventata talmente modaiola, poco affascinante e quanto di più lontano dalla Vera Informatica ci possa essere, da rendere i sistemi Microsoft (e quindi, di conseguenza, i personal computer non iQualcosa) degni di un Vero Uomo 2.0.

I veri uomini sono i veri smanettoni e adesso che Windows sta morendo a causa della sua incapacità di rimanere uguale alle versioni che ne hanno determinato il successo i veri uomini sono quelli che usano sistemi operativi alternativi… ma sempre meno di nicchia.L’importante è che il Vero Uomo ne sappia di informatica e sia uno smanettone… comprare un pc da 2.000 € solo perché è costoso non aggiunge nessun valore alla persona che rimane, di conseguenza, un Mangiatore di Quiche. Perchè la verità è che sul nuovo portatile era installata una versione del nuovissimo Windows 10 e, piuttosto di imparare ad utilizzare questo “nuovo” sistema operativo, ho preferito imparare ad utilizzare Linux Mint per le attività di tutti i giorni. E devo ammettere che mi sto adattando molto bene e il divertimento e il piacere aumentano giorno dopo giorno.

E poi vuoi mettere la sensazione di potenza quando per spegnere un pc devi scrivere sulla riga di comando (preferibilmente la BASH Shell):

shutdown -h now

Permalink link a questo articolo: http://www.andrea.rustichelli.name/la-nascita-del-vero-uomo-2-0-2/

Microsoft Service Agreement

Ero curioso di leggermi il Service Agreement di Microsoft dopo aver visto la puntata di South Park con la parodia di “The Human Cent iPad” e degli “Apple Terms” di Apple che vengono sempre accettati senza mai leggere veramente il loro contenuto.

Mi sono guardato i servizi legati a Windows Live ed è Interessante quello che c’è scritto al punto 3.3 delle condizioni:

3.3. Quali operazioni effettua Microsoft sul contenuto dell’utente? Quando l’utente carica contenuto nei servizi, accetta che tale contenuto venga utilizzato, modificato, adattato, salvato, riprodotto, distribuito e visualizzato nella misura necessaria per proteggere se stesso e fornire, proteggere e migliorare i prodotti e i servizi Microsoft. Ad esempio, Microsoft potrà, occasionalmente, utilizzare mezzi automatici per isolare informazioni presenti in messaggi di posta elettronica, chat o foto allo scopo di consentire il rilevamento di posta indesiderata e malware o per migliorare i servizi con nuove funzionalità che ne semplifichino l’utilizzo. Durante l’elaborazione del contenuto, Microsoft eseguirà una procedura necessaria a garantire la riservatezza dei dati dell’utente.

Beh mi fa piacere sapere che Microsoft analizzerà il contenuto dei miei file per la mia sicurezza (non si sa mai che in un file che ho caricato ci sia una bomba o un batterio killer nocivo per la mia salute.
Ovviamente sono sicuro che clausole simili siano presenti in tutti i servizi in line (Google Drive, Dropbox, ecc), però è sempre piacevole sapere che le grandi Internet Company si occupino della nostra sicurezza personale.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/microsoft-service-agreement/

Statistiche del mio sito personale “andrea.rustichelli.name” al 31/12/2018

Fine anno tempo di statistiche… ho deciso di pubblicare, per la prima, volta i dati sulle visualizzazioni del mio sito dal 15/09/2012 al 31/12/2018. Ovviamente le statistiche sono condotte con un plugin che non permette l’identificazione dell’utente che sta visualizzando il sito www.andrea.rustichelli.name per un paio di buoni motivi:

  • per la nuova normativa GDPR sarei punibile di una multa multi milionaria. Se facessi una strage la pena sarebbe sicuramente inferiore.
  • secondo motivo, quello più importante, non mi interessa sapere chi guarda il mio sito.

Ciò premesso ecco il riassunto “visuale” dei primi 6 anni (abbondanti) del mio sito personale. Colgo l’occasione per ringraziare tutti coloro che, anche solo per errore, sono atterrati su queste pagine che, credetemi, sono il frutto di tanta passione e di moltissime ore passate davanti allo schermo del mio portatile (e non solo).

Permalink link a questo articolo: http://www.andrea.rustichelli.name/statistiche-del-mio-sito-personale-andrea-rustichelli-name-al-31-12-2018/

Facciamo un salto nel passato ed evolviamoci a 3-tier

Giusto per capirci, l’architettura a 3 livelli o “3-tier architecture” non è proprio un paradigma dell’ultima ora. Possiamo dire che si è affermata sul finire del XX° millennio e nei primi anni 2000 con la grandissima diffusione di internet (e quindi di applicazioni di rete con accesso ad un database) e con l’affermarsi del paradigma di programmazione OOP ovvero Object Oriented Programming. Grazie soprattutto all’espansione continua e inarrestabile del linguaggio Java e del pattern MVC (Model View Controller) tutto è stato separato in 3 livelli diversi, ciascuno con la propria specificità.

In particolare, come si può vedere dai file allegati, già nella versione 5 e 6 del JBuilder (epico IDE della Borland per lo sviluppo di applicazioni Java) si parla di architetture a 3 livelli e sono citate tecnologie e “best practice” per programmare architetture in formato “3-tier”.  Se consideriamo che il JBuilder 5 e 6 risalgono all’anno 2001 direi che è facile capire come questa architettura sia tutt’altro che recente.

Lo schema dell’architettura è tratto dal sito https://security.stackexchange.com ed è stata rilasciata con copyleft e quindi riutilizzabile.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/facciamo-un-salto-nel-passato-ed-evolviamoci-a-3-tier/

roBOTomizzati – Analisi di una mania robotica

Spesso accade che lo spunto per un nuovo post nasca dalla conversazione con un Mangiatore di Quiche. Questo post ne è la conferma.

Inutile dire nuovamente quanto mi faccia arrabbiare sentire persone “inesperte” farcirsi la bocca con termini tecnici o informatici cercando di passare per esperti di nuove tecnologie. In questi giorni il termine scelto dal Mangiatore di Quiche era “Bot”. Questa nuova tecnologia che sta sconvolgendo il mondo informatico e prospetta nuove e inaspettate applicazioni in qualsiasi ambito.

Facciamo un po’ di ordine.

I Bot sono la contrazione, prettamente in ambito informatico, di roBOT, ovvero entità software (o, ancora meglio, software agent) che agiscono come se fossero persone e eseguono delle attività in modo più o meno automatizzato e con o senza il continuo intervento umano.

I primi Bot utilizzavano per l’interazione con l’uomo una semplice logica di programmazione basata sulla presenza, nel testo o nel corso del dialogo, di particolari parole o frasi che poi innescavano la logica applicata nella programmazione. Ovviamente nei nostri giorni questa semplice logica ha lasciato sempre più spazio all’applicazione della IA (intelligenza artificiale).

Di Bot ne esistono tantissimi tipi, solo per citarne alcuni:
chatterbot
web crawler (o web bot, o www bot o internet bot)
IRC bot (Internet Relay Chat)
video game bot

Sostanzialmente, visto che con i Bot è possibile fare praticamente tutto, è possibile trovare una moltitudine di definizioni in base alla loro attività/scopo.

Chatterbot
Programmi che simulano una conversazione tra persone… il più famoso è sicuramente ELIZA (ma personalmente ho provato anche ALICE).

Web crowler
Non sono altro che Bot che “girano” per internet cercando di catalogare e indicizzare i contenuti delle varie pagine web per migliorare le ricerche su internet (come dimenticare il file robot.txt da inserire nelle cartelle di un sito web per aiutare Google nell’indicizzazione).

IRC bot
Erano agenti software che operavano sulla chat internet basate sul protocollo Internet Relay Chat e che agivano come amministratori per aiutare gli utenti o per evitare comportamenti non consoni all’etichetta.

Video game bot
Questi ovviamente sono i più evoluti (come tutte le cose che riguardano il mondo dei video giochi) e possono essere prevalentemente di due tipi, bot statici e bot dinamici. I primi sono come quelli utilizzati in Quake 3 Arena dove avevano lo scopo di fronteggiare il protagonista nei vari livelli di addestramento. I bot dinamici invece hanno la capacità di imparare dinamicamente i vari livelli e le varie mappe di gioco come realizzato in Counter-Strike con i RealBot.

I bot arrivano da lontano. Lasciando stare il Test di Turing, uno dei primi interessanti esperimenti con i bot è sicuramente rappresentato da Eliza, un bot creato nel 1966 al MIT dal professor Joseph Weizenbaum con lo scopo di simulare una chiacchierata con una psicoterapista di nome Eliza. Di questo bot ne sono state fatte varie versioni anche per ambiente MS DOS nel corso degli anni 90.
Eliza simulava la conversazione usando un sistema di ricerca e sostituzione dei termini presenti nelle frasi della persona dando l’illusione che il programma capisse veramente il contenuto delle frasi.
Una curiosità che riguarda ELIZA è MELIZA, una sorta di easter egg presente in Google Earth che si può attivare posizionandosi su Marte (vicino alla Face of Mars) dove si può trovare una icona che, premendola, fa partire una chat con un presunto alieno che implementa le stesse funzioni del bot originale Eliza.
Rimanendo sempre negli anni ’90 è necessario citare anche A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) sviluppata in AIML (Artificial Intelligence Markup Language).

Arrivando ai giorni nostri i bot si sono arricchiti della capacità di interpretare la lingua parlata, rispondere vocalmente utilizzando dei sintetizzatori vocali per trasformare il testo in parole e utilizzando algoritmi per la machine learning per espandere autonomamente le proprie capacità.
Si arriva infatti nel 2012 a Google Now e nel 2015 a Alexa e Cortana. Nel 2016 sono arrivati anche i bot per la piattaforma Messenger di Facebook in risposta ai bot di Telegram.

Nel 2016 la Microsoft aveva rilasciato su Twitter il bot TAY (Thinking Bout You) ma a causa di tweet offensivi e dal contenuto polemico la Microsoft è stata costretta a chiudere il servizio dopo solo 16 ore dal lancio.

Infine, direi che merita una menzione d’onore il bot LSJBOT (codice sorgente)creato dal professore svedese Sverker Johansson per creare in modo autonomo delle pagine per la versione Svedese di Wikipedia. Il bot è in grado di generare fino a 10.000 articoli al giorno e questo ha portato l’edizione svedese ad essere la seconda edizione a raggiungere i 2 milioni di articoli.

Direi che ho detto tutto.
Quindi, i bot sono agenti software che arrivano da lontano, si sono evoluti utilizzando sempre di più l’intelligenza artificiale e imparando ad utilizzare l’udito e la parola e possono fare praticamente qualsiasi cosa.

Adesso che il Mangiatore di Quiche mi ha provocato, mi sta venendo voglia di provare a creare un bot per Telegram.
Le sue applicazione possono essere le più varie… il bot può gestire richieste di documenti da remoto, può essere utile per interfacciasi con il computer di casa e può fornire assistenza a 360°.

Un’ultima nota folkloristica… con tutti i chat bot ci scambi al massimo 10 frasi… dopo ti viene voglia di offenderli e il discorso degenera velocemente. Provare per credere.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/robotomizzati-analisi-di-una-mania-robotica/