Seconda prova dell’esame di stato 2009 PNI, alcuni quesiti

Giugno 26, 2009 by otacon22

Stamattina ho dovuto affrontare la seconda prova dell’ esame di stato. Non è ben chiaro come identificare il tema d’esame che abbiamo fatto, perchè ufficialmente dovrebbe essere quello del liceo scientifico piano nazionale informatica a indirizzo matematico-naturalistico.
Sulla scheda c’era un codice d’esame che iniziava per X, mentre se si cerca su internet le soluzioni si trovano solo del tema d’esame Y557, che è quello PNI normale. Quest’ultimo appare però diverso dal nostro.
I nostri quesiti sono corrispondenti a quelli del tema d’esame Y557, che potete trovare qui

Nei quesiti che ho svolto io c’erano:

Quesito 1:

Si richiede la dimostrazione di un integrale:
integrale da -b a b di |x-a| che risulta a²+b²
È necessario quindi considerare i due casi del modulo: se quello  che c’è dentro è positivo (e quindi resta uguale) oppure è negativo (e allora il modulo lo fa diventare positivo)
inoltre bisogna considerare che si sta facendo l’integrale di una funzione sempre positiva (quindi l’integrale corrisponde all’area)
Dato che “spacchiamo” il modulo nei 2 casi, dovremo fare 2 integrali e poi sommarli tra loro.

  • Se x-a>0 allora x>a, quindi la funzione resta uguale e togliamo le sbarrette del modulo e si mettono le parentesi, cioè risolviamo
    integrale da a a b di (x-a) ; che risulta (ax-x^2/2) da a a b
  • Se x-a<0 allora x<a, quindi la funzione viene cambiata e diventa da (x-a) a (a-x); e risolviamo
    integrale da -b ad a di (a-x); che risulta (x^2/2-ax) da -b ad a

Sommando infine i due risultati tra loro  si ottiene a^2-a^2-(-ab-b^2/2)+b^2/2-ab-(a^2-a^2) e quindi appunto a²+b²

Quesito 8:

Alla festa di compleanno di Anna l’età media dei partecipanti è di 22 anni. Se l’età media degli uomini è 26 anni e quella delle donne è 19, qual è il rapporto tra il numero degli uomini e quello delle donne?

Per prima cosa scriviamo i  dati tenendo conto della formula della media M=(X1+X2+X3+X4+X5….+Xn)/n
indichiamo la somma delle età di tutti gli uomini con S1, mentre la somma delle età di tutte le donne con S2.
indichiamo il numero degli uomini con x e il numero delle donne con y

  • L’età media di tutti è data da (S1+S2)/(x+y) = 22
  • Sappiamo inoltre che S1/x = 26
  • e anche S2/y = 19

Dalle ultime due condizioni ricaviamo che S1 = 26x  ed  S2 = 19y
riportandole nella media generale otteniamo (26x+19y)/(x+y) = 22
si porta poi il  22 a sinistra e si fa il denominatore comune, ottenendo:
26x+19y-22x-22y=0 (il denominatore è sempre positivo e si può eliminare)
quindi 4x-3y=0 e quindi (x/y) = 3/4

Quesito 7:

Era una semplice identità utilizzando i coefficienti binomiali. Il trucco per risolvere queste è ricordarsi che x! = x*(x-1)! oppure x!=x*(x-1)*(x-2)! etc
Per la risoluzione si rimanda alle soluzione a pagina 2 di questo file

Quesito 5:

Si considerino le seguenti espressioni:
0/0 ; 1/0 ; 0/1 ; 0^0
A quali di esse è possibile attribuire un valore numerico? Si motivi la risposta.

Ovviamente solo 0/1 è un valore esistente pari a 0,
0/0 è una forma indeterminata perchè infatti se si considera 0/0 = x cioè 0=0*x si nota che si ottiene 0 per qualunque numero, quindi il risultato è indeterminato.
1/0 è una forma impossibile perchè infatti 1=0*x non esiste nessun numero che moltiplicato per 0 fa ottenere 1
0^0 è anch’essa una forma non definita perchè le regole delle potenze stabiliscono che n^0 = 1 con n diverso da 0, altrimenti 0^0 dovrebbe fare 1, che non è possibile.

Quesito 3:

Una moneta da 2 euro (il suo diametro è 25,75 mm) viene lanciata su un pavimento ricoperto con mattonelle quadrate di lato 10 cm. Quale è la probabilità che la moneta vada a finire internamente ad una mattonella? (cioè non tagli i lati dei quadrati)

La probabilità in casi  come questo è data dal rapporto tra 2 aree, l’area cosiddetta “favorevole” e quella totale.
Perché la moneta non tocchi il lato della mattonella il suo centro deve cadere in un punto la cui distanza dal lato sia minore del raggio; cioè all’interno di un quadrato che ha lo stesso centro e i lati paralleli alla mattonella ed uguali al lato meno il doppio del raggio della moneta.
La probabilità è quindi data dal rapporto tra le aree dei due quadrati
(10-2,575)^2/(10^2)  = 0,55 cioè il 55%

Purtroppo io ho sbagliato l’area da considerare nell’esame, comunque il procedimento è questo.

Tesina: “Reti neurali artificiali”

Giugno 12, 2009 by otacon22

In occasione della fine della scuola ho consegnato il mio lavoro multidisciplinare (meglio conosciuto come “tesina”) sulle reti neurali artificiali.
Ho tentato di fare una introduzione abbastanza discorsiva, poi ho presentato ciò che è più importante riguardo al sistema nervoso (con riferimenti a quello umano) e infine ho presentato la vera e propria trattazione matematica con anche un esempio applicativo.
Resta comunque un lavoro di carattere matematico-naturalistico scritto in modo divulgativo, non può considerarsi un manuale o una guida per imparare a creare e utilizzare bene le reti neurali, ma solo uno spunto per comprendere le idee che ne stanno alla base.

Per dirne una: il neurone bias non l’ho spiegato bene, in realtà se poi uno si deve mettere effettivamente a fare un programma potrebbe trovarsi in difficoltà a capire come posizionarlo e che valore dargli…

Proprio per questo ho pensato di pianificare una futura pubblicazione qui di un’ altra versione della tesina, rifatta “per programmatori”, arricchita di dettagli tecnici che non avrei potuto mettere nell’originale a causa del poco tempo a disposizione per esporla.

Inoltre spero di trovare tempo nell’estate per preparare anche un futuro talk magari per l’ESC riguardo alle reti neurali artificiali…

E dopo tutta questa solfa apparentemente inutile ecco a voi il link del file pdf della tesina

PyCon Tre

Maggio 28, 2009 by otacon22

Temevate forse di non avere un feedback seppur minimo del pycon Tre svoltosi dall’8 al 10 Maggio 2009?! Vi sbagliavate!
Un giudizio complessivo? Non male, anche se quasi un po’ ripetitivo rispetto all’ anno scorso.
Come sempre voglio ribadire il fatto che ormai queste conferenze, che dovrebbero essere dedicate ad un linguaggio di programmazione stanno diventando più che altro solo un pretesto per incontrarsi e sentir parlare personaggi importanti.
“Ma perché dici questo?” starete dicendo, però a mio parere è così: sia l’anno scorso che quest’anno si è andati verso una direzione di cercare di puntare sempre di più sugli aspetti web. A mio parere questa conferenza dovrebbe cambiare in nome da “PyCon” a “PyWeb”; dato che tantissime cose mostrate hanno solo risvolti web.
L’anno scorso era la volta di Django e alcune anticipazioni di Google app engine, quest’anno è stato rimarcato Google app engine ancora di più; anche per la presenza di Guido Van Rossum (creatore e leader di python).

Il primo giorno, Venerdì 8 Maggio sono arrivato con |Wolf| (aka. Ezio Melotti) a Firenze, dove siamo stati ospitati per i tre giorni della conferenza da un nostro amico: Rev. Guido Van Rossum ha tenuto un talk per gran parte del primo giorno in cui ha parlato delle novità introdotte in Python 3.0 , chiarendo a tutti (e incredibilmente anche a me) le idee riguardo a come stanno procedendo gli sviluppi delle varie versioni dell’ interprete python. Per farla breve si sta sviluppando Python 3.0 anche se in parallelo si lavora ancora sul 2.6 . Python 3.0 ha tantissime novità anche in sintassi, nomi di librerie, utilizzo di stringhe di byte, unicode e tante altre cose. Tutto ciò la rendono incompatibile alle versioni precedenti, cioè python 3.0 non è completamente retrocompatibile . Questa affermazione già da tempo mi ha fatto rizzare i capelli: ho sempre amato python per la sua semplicità, per la sua possibilità di fare la stessa cosa in tanti modi diversi senza essere legato per forza a uno schema di sintassi fisso.
Alla fine ho capito che la cosa va accettata: è necessario uno sviluppo della piattaforma python in modo sensibile ed è necessario farlo con una svolta di pagina decisiva.

Dopo Guido ha parlato Alex Martelli, ormai stra conosciuto da tutti i partecipanti del pycon. Nonostante |wolf| e altri abbiano detto che il suo talk è stato “campato per aria” come discorso io lo ho trovato molto interessante. Quello che martelli ha voluto spiegare a noi programmatori è che python, come molte altre cose è una astrazione, un codice che non significa nulla, che viene poi ripreso dalla macchina che si basa su vari strati, vari livelli di tecnologia. Da bravo ingegnere elettronico ha mostrato come passando dagli atomi, ai transistor e alle porte logiche ed arrivando ad un linguaggio interpretato sia necessario conoscere gli strati di astrazione precedenti. È un discorso un po’ filosofico, ma vuole semplicemente spiegare in modo logico che è necessario quando si lavora su qualcosa in campo informatico conoscere almeno 2 o 3 livelli di astrazione sotto quello su cui si lavora. In termini pratici significa che se stai programmando in python dovresti sapere qualcosa su come gira python con C (e quindi sapere qualcosa di come funziona C) e dove gira C (ovvero il sistema operativo e la sua struttura) e nel caso potrebbe anche essere necessario conoscere assembler.
Come ha cercato di spiegare infatti non si può lavorare su pure astrazioni (come l’idea astratta di “codice”) senza conoscere quello che ci sta dietro.
Oltre a questo discorso informatico-filosofico ha parlato anche di vari esempi pratici con python, facendomi scoprire cos’è il cosiddetto monkey-patching

In serata c’era la PyFiorentina, a cui però Io,|Wolf|,tyrion,Rev e patrick abbiamo deciso di non partecipare dopo essere entrati nel ristorante. L’idea di base della PyFiorentina sarebbe che noi programmatori ci ritroviamo in un clima più sereno di quello della conferenza per poter discutere con calma e conoscere altre persone. L’anno scorso è stato un po’ così, anche se alla fine abbiamo parlato solo con quelli del nostro tavolo che si sono seduti per mancanza di posti.
Quest’anno siamo arrivati noi 5 e ci siamo piazzati su un tavolo; le altre persone si sono messe però anche in altre sale e nel casino del ristorante ci siamo ritrovati soli con in mano un menu con solo 2 pizze surgelate e altra roba tipo fiorentina (la nostra idea non era quella di prendere la fiorentina). Essendoci quindi trovati da soli e senza tanto interesse per stare in quel posto costoso e chiassoso abbiamo deciso di fugarcela con cautela e cercare un altro ristorante/pizzeria dove poi abbiamo mangiato.
Questa è di certo una critica pronta per gli organizzatori del PyCon: non si può fare una cena della conferenza e lasciare tutti in tavoli piccoli separati. Dato che l’organizzazione non manca si poteva benissimo scegliere un altro ristorante più spazioso ed organizzare tavolate più ampie.

Il secondo giorno, Sabato 9 Maggio, il nostro gruppetto si è diviso per poter guardare ognuno i talk che gli interessavano: io ho seguito per primo il talk su “La geometria interattiva con Python e pyig“, che mi era stato segnalato da tyrion che aveva collaborato con l’autore. In sostanza l’autore è un insegnante di matematica di un liceo scientifico, che insegna la geometria anche con l’utilizzo dell’ informatica e la programmazione: cioè con python. Ha realizzato una libreria semplice da utilizzare per questo scopo e ha mostrato vari esempi di applicazione.

Dopo ho seguito Erlang + Python, l’unione di due mondi, che parlava di un altro linguaggio interpretato chiamato Erlang, molto particolare. Ho seguito questo talk anche perché conosco il relatore: Lawrence Oluyede.

Dopo il coffe break ho seguito il talk su OpenGL, che però mi ha lasciato un po’ sconsolato: pensavo di aver capito qualcosa e ho perso tutte le mie certezze. Inoltre sapevo che OpenGL era scomodissimo e ne ho avuta la prova. Io ho iniziato a smanettare su OpenGL e quella roba là quando volevo fare un videogioco 3d: SteelWarPy. Panda3d è venuto in mio supporto, un’ottima libreria 3d, molto meglio di qualunque roba tipo OpenGL, che resta solo una libreria piena di funzioni, utilizzabile per lavori semplicissimi in 3d, non certo per fare un videogioco.

“Tecniche di scraping in python”, talk successivo che ho seguito è stato forse uno dei pochi che mi ha veramente interessato: il relatore ha mostrato al pubblico varie librerie e metodi veramente interessanti per estrapolare contenuti dalle pagine web o compilare in automatico form html, problema che mi sono spesso posto. Si è ovviamente parlato di Beautiful Soup e urllib & co.

“Easy AI with Python” era uno dei talk che veramente aspettavo di sentire, soprattutto per curiosità. Curiosità sicuramente legata al fatto che sto facendo la tesi sulle reti neurali. Pare che le mie opinioni siano sempre “[::-1]” (inverse) di quelle di |Wolf|, perchè anche in questo caso lui sostiene che sia stato un talk chiaro e semplice, mentre io ho capito  ben poco.  Hettinger, il famoso relatore che ha tenuto il talk, ha parlato dell’ utilizzo di python per l’intelligenza artificiale, ma si è parlato principalmente di intelligenza artificiale simbolista un unico accenno di intelligenza artificiale connessionista è stato fatto parlando di un database e la possibilità di introdurre un neurone per ciascuna categoria, e di collegare vari neuroni tra di loro per scoprire relazioni particolari in un database. Questo metodo è comunque al limite con un paradigma simbolista: si è presentata una rete “neurale” se così possiamo definirla, collegata in modo molto particolare; differente dal classico grafo diretto aciclico, e del tutto priva di un algoritmo di apprendimento anche lontanamente simile a quello di retro-propagazione. L’unica cosa che fa definire quel metodo “neurale” è forse l’utilizzo di una formula di attivazione (che però non sono riuscito a scorgere durante il veloce passare delle slide).
Oltretutto io sono piuttosto informato sulle reti neurali, anche se non sò tantissime cose, però la maggior parte delle persone durante la conferenza non sò cosa ci abbiano capito su quello.

Poi ho seguito il talk che ha tenuto |Wolf| su unicode per capirci finalmente qualcosa: “Unicode e Python 3″

Il talk fine giornata di Guido non lo ho molto seguito, sia per lo scarso interesse sull’ argomento, sia perchè continuavo a fare schemi per tentare di capire come funzionassero le reti neurali “particolari” presentate prima da Hettinger.

Di domenica 10 Maggio mi ha interessato principalmente “Automazione industriale e python”, praticamente uno dei pochi talk per cui dovevo essere per forza presente al PyCon. Si è parlato del controllo di macchine a controllo numerico e PLC. Si è parlato anche dell’ utilizzo di python in real-time, per applicazioni pratiche di elettronica e altro. Il tutto mi ha ovviamente molto interessato per i miei esperimenti di robotica.

Purtroppo volevo seguire anche “GUI for Rehabilitation Robotics” giusto per curiosità, però ho dovuto lasciare il PyCon per recarmi in stazione dopo l’ultimo coffee break.

Da sinistra a destra in nickname: |Wolf|,Rev,tyrion-mx,Patrick91,Io

Da sinistra a destra in nickname: |Wolf|,Rev,tyrion-mx,Patrick91,Io

Sistema di rilevamento battito mani & altri rumori

Maggio 1, 2009 by otacon22

Poco tempo dopo aver realizzato il sistema per controllare le varie luci della taverna dal pc ho pensato: “eh, ma poi il vantaggio dove stà se per controllarle da altrove devo andare al pc?”
Eh in effetti è vero, comunque non è stato certo inutile fare questo lavoro, perchè mi ha permesso di portare varie “periferiche” esterne in un unico controllo che sò gestire bene.
Allora ho subito pensato a un interruttore battimani. Dopo aver visto su www.grix.it alcuni esempi di circuiti, e dopo aver considerato varie possibilità di acquisto dei cosiddetti “relè fonici” ho visto che poteva essere più semplice costruirselo da sè.
Ah, per chi non lo sapesse un relè fonico è un dispositivo che chiude un circuito elettrico quando rileva un certo suono, tipo un battito di mani; di modo da poter controllare luci e altro.
Avevo anche considerato la possibilità di fare un programma che lo facesse tramite il microfono del pc; ma è poco sensibile e poi avrebbe solo dato problemi di server audio etc..
Insomma alla fine ho trovato questo circuito su una rivista (mi è stato passato da ulisse):
schema0011

Io però al posto del microfono piezoelettrico ho utilizzato un microfono direzionale già pronto collegando la massa del microfono a quella del circuito e l’uscita audio nella base di TR1 e ho tolto la resistenza R1 e il condensatore C2. Successivamente al posto del relè in uscita ho collegato il pin CTS della seriale, cioè un pin di input digitale, e ho messo in comune la massa del circuito con quella della seriale. Poi ho fatto un piccolo programma client che legge i dati dalla seriale( True o False). Il circuito funziona in questo modo: dopo aver regolato i trimmer accendendo esce 0, mentre battendo le mani o facendo altri suoni che rientrano in una certa banda di frequenze si attiva e inizia a uscire 1 al posto di 0, fino a quando non viene ripetuto nuovamente un altro suono che riporta l’uscita a 0.
In questo modo ho potuto fare un programma che legge i vari 1 e 0 che arrivano e fa una sorta di mappa/matrice in funzione del tempo tipo:
In un lasso di tempo di 0,4 secondi se lo stato passa da 0 a 1 o da 1 a 0 il mio programma segna che è successo qualcosa, ovvero 1, altrimenti se non succede niente segna 0. Dunque il mio programma divide il tempo in modo discreto a unità di 0,4 secondi l’una. Se io batto le mani, poi attendo e le batto un’altra volta il mio programma riceverà questa sequenza:
[0,0,0,0, 0, 0,1, 0, 1] dove gli 0 prima sono il silenzio precedente al primo battito
questa “mappa” è infinita come lunghezza di registrazione, anche se in realtà quando supera una certa lunghezza inizio a tagliare i valori + vecchi.

Il vantaggio di non aver usato il relè etc è che ora posso preparare il programma per rispondere a varie combinazioni. Come si vedrà nel video di seguito ho infatti programmato per accendere 2 luci a un doppio battito di mani. Questo perchè il circuito spesso si attiva anche chiudendo porte, starnutendo  etc, quindi così è + sicuro..

Progressi nel sistema di controllo luci da remoto

Febbraio 28, 2009 by otacon22

Nel tempo che mi è rimasto libero ho fatto qualche piccolo aggiustamento al server per il controllo delle luci e ho scritto un client in python usando le gtk per il controllo delle luci via internet, con possibilità di impostare una temporizzazione per la accensione e funzionamento in multiclient.
Per gli smanettoni che vogliono provare  il codice del server e del client lo trovate qua
Ho fatto anche per questo un piccolo video:

C’è purtroppo ancora un bug nel programma client: se vi scollegate e vi ricollegate non funzionerà, dovrete ritentare una seconda volta, appena ho tempo correggo..

Controllo luci di casa da rete e da pc

Febbraio 16, 2009 by otacon22

Qualche settimana fa, preso completamente da questa ossessione della domotica, mi sono messo a progettare un sistemino per il controllo delle luci dal pc. L’idea era molto semplice: iniziare a controllare 2 luci della taverna tramite un programma.
L’impianto della mia taverna si compone di 2 luci collegate alla corrente tramite canaline che vanno agli interruttori e in una scatola di derivazione principale.
Ogni luce con 2 bottoni (come ogni bravo elettricista sa) è collegata tramite 2 deviatori. Un deviatore è un tipo di interruttore con 3 pin: quello centrale è collegato a uno dei 2 a seconda della posizione del bottone. Dunque la lampadina è collegata direttamente a uno dei 2 fili della 220V(ammettiamo la fase), mentre l’altro si collega all’altro capo della 220V(ammettiamo il neutro) tramite gli interruttori in questo modo: il neutro entra nel pin comune di uno  dei 2 deviatori, mentre gli altri due pin del deviatore vengono collegati direttamente agli altri 2 pin non comuni di un secondo deviatore. Il pin comune di questo secondo deviatore si collega invece alla lampadina. In tale modo quando si modifica lo stato di uno dei 2 deviatori cambia anche lo stato della luce, sia che sia accesa o spenta.
Per “inserirmi” con il controllo dal pc dovevo mettere ovviamente un relè. Questo relè doveva fungere come se fosse un terzo bottone nascosto. Come sanno bene gli elettricisti (e non gli elettronici :) ), per mettere un terzo bottone bisogna inserirlo tra i 2 deviatori, collegando appunto un invertitore: l’invertitore riceve i 2 fili dei pin non comuni di uno dei 2 deviatori e rimanda altri 2 fili ai pin non comuni dell’ altro deviatore; quando viene premuto l’invertitore esso come suggerisce la parola “inverte” i cavi in ingresso, rimandando la corrente in modo invertito. Spero di essere + chiaro con un disegno che metterò di seguito.
Dunque ho preso un relè di quelli da 12V che reggono la 220V a 3A circa. Ho trasformato il relè in un invertitore, per metterlo come se fosse un terzo bottone della luce ma nascosto..
Il relè era a 2 scambi , per un totale di 6 pin. Cioè ci sono 3 pin di cui uno centrale riceve la corrente da uno dei 2 laterali a seconda che il relè sia acceso o meno, e poi altri 3 pin che fanno la stessa cosa ma in modo del tutto indipendente. Ho quindi collegato come in figura che segue.
Dopo questo casino( solo a leggerlo, poi è facile ) sono riuscito a controllare la luce accendendo o spegnendo il relè come se fosse un normale bottone.
Ora c’era il tipico problema dei fili che devono arrivare al pc.
Ho fatto così: ho aperto la scatola di derivazione dopo aver tolto corrente e anche ho aperto tutte le sctole degli interruttori in questione. Ho iniziato a tirare fili dalla scatola di derivazione, fino a trovare quelli che corrispondevano alle prese. Ho trovato da dove partivano i fili che dalla scatola di derivazione andavano a ogni deviatore. Ho tagliato questi fili e ci ho messo come detto prima: mettendo come in serie  a questi 4 fili il relè.
Dopo aver ripetuto la stessa procedura con l’altra luce ho comprato un cavo schermato contenente 7 cavetti rigidi. Dopo aver sudato e versato sangue(non metaforicamente) per spingere il filo nelle canaline della corrente sono riuscito a far arrivare questo cavo fino alla presa dove arriva la corrente al mio pc. Da lì ho condotto il cavo in una scatolina dove ho allestito la scheda di controllo dei relè. Ho collegato i relè nella scatola di derivazione al cavo che andava al pc e ho messo nella scatola di controllo dei relè alcuni transistor con relative resistenze, collegati poi a un trasformatore per alimentare il tutto. Il principio è semplice: il pc manda una sequenza di 8 bit in parallelo a questa scatola, dove i transistor amplificano la corrente della parallela con il trasformatore e mandano corrente ai relè, che scattando cambiano lo stato della luce da accesa a spenta o viceversa.

Per il software ho creato un server con i socket tcp di python e lo ho interfacciato alla parallela con pyparallel. Ho aggiunto un sistema di parsing dei dati ricevuti , un file di configurazione, un controllo ip e una password. Finito il tutto ho fatto un video e mi sono divertito con Biohazard e Winstar che mi accendevano le luci da remoto :)
Spero di collegare altro!

Video:

Schema:

Schema approssimativo

Schema approssimativo

PyCon Tre

Gennaio 30, 2009 by otacon22

Salve a tutti.
Pare che come l’anno scorso, con molto anticipo, si conosce già la data del prossimo pycon. Verrà fatto ancora Firenze pare nello stesso posto dell’ altra volta, 8-9-10 Maggio 2009..
Quest’ anno la presenza importante sarà Guido Van Rossum, creatore del linguaggio Python,  che verrà quasi per “benedire” la conferenza..

Inizialmente pensavo di proporre un talk, ma mi sono reso conto di essere senza materiale che possa esporre.. spero almeno quest’anno di fare qualche intervento serio e di parlare in un lighting talk..
In realtà pensavo di cogliere l’occasione per mostrare i miei interessi in campo di robotica economica applicata portando una fonera 2.0(il nuovo modello con 2 ethernet e anche l’usb) collegata via usb a una webcam e via seriale a un driver per pilotare i motori di una macchina su cui la alloggerò. Insomma, una cosa molto semplice, niente a che vedere con tixo, però voglio mostrare quello su cui lavoro in modo semplice e diretto per far interessare anche altre persone a questo  campo dell’ utilizzo di python.
Avendo l’idea di utilizzare una macchinina già pronta i problemi tecnici dal punto di vista meccanico dovrebbero essere abbastanza superati, potrei avere giusto qualche problema per il fatto che non sò esattamente a quanti volts vada la nuova fonera e quanti ampere consuma. In ogni caso dovrò vedere di trovare il posto di aggiungere una batteria aggiuntiva.

Quest’anno dovrebbe circa essere come l’anno scorso, con il solito B&B con tyrion-mx e patrick91. Potrebbe esserci anche il mitico |Wolf|, hacker compaesano mio scappato all’ estero, che tornerà in Italia per l’occasione; l’organizzazione resta ancora da fare comunque. Nel frattempo ho sospeso qualche progetto(oscilloscopio USB e theremin fatto in casa) per dedicarmi a questa cosa della fonera che vorrei tenere lì pronta al più presto.

Ah, la mia tesina prosegue: la parte di scienze è praticamente scritta, anche se mancano molte immagini il mio supervisore tecnico (Professore Timolati) sostiene che è tutto ok.

Tesina

Novembre 15, 2008 by otacon22

In occasione dell’ esame di stato che dovrò tentare di superare l’anno prossimo dovrò presentare una relazione su un argomento a scelta, attinente con il programma, in massimo tre ambiti diciplinari, che sia originale. La mia prima scelta e quella che è rimasta poi definitiva è stata quella di pensare di fare qualcosa sulle reti neurali.
Dopo essermene interessato qualche anno fa ho poi comprato il bellissimo libro di Cammarata “Reti neuronali” che ho letto in ogni sua parte attinente a ciò che mi interessa sulle reti neuronali, ho letto diverse altre cose al riguardo e ho anche sperimentato con le mie mani alcuni programmi in python per usarle.
Così ora è rimasta questa scelta: farò una tesi che sarà probabilmente intitolata “Reti neurali” e inizierò parlando della scelta dell’ argomento e a cosa servono e cosa sono a grandi linee. Poi inizierò a parlare del sistema nervoso umano, con i neuroni, assoni, dendriti e le solite cose, spiegate però abbastanza nel dettaglio.
Successivamente inizierà la trattazione puramente matematica, che andrà spiegando la struttura delle reti feed-foward e le loro formule principali, ad esempi applicativi usando formule di trasferimento semplici (come la sigmoide) e poi passerò a usare alla fine la tangente iperbolica e con l’algoritmo di propagazione inversa mostrerò come sia possibile riconoscere delle lettere scritte a mano.

Accetto suggerimenti o richieste di informazioni.

Ovviamente se tutto sarà andato a buon fine qui pubblicherò i file della tesina scaricabili per poter essere letti

Dominio.

Novembre 15, 2008 by otacon22

In occasione del mio diciottesimo compleanno del 24 Ottobre ho deciso di acquistare un nuovo dominio per il blog: ho infatti comprato un dominio .it: www.otacon22.it purtroppo per motivi tecnici non è ancora attivo. Sarà attivo a breve.

ESC 2k08 – End Summer Camp 2008

Ottobre 2, 2008 by otacon22

Hola a tutti!

È da un po’ che non scrivo, in effetti dovevo fare un post per avvisare dell’ imminente ESC: un altro meeting di hacker a cui poi ho partecipato.
Dopo la notizia dell’ hackmeeting a Palermo ho totalmente rinunciato ad andarci; più che altro per il perido, non molto per la lontananza del posto (21 ore di treno).

Però al ritorno dalle vacanze ho saputo da Arki e Accatron, vecchi conoscenti dell’ Hackmeeting 2007 mi hanno informato di questo End Summer Camp organizzato dal metro olografix.
Dunque ho informato Biohazard, Ulisse  e Winstar.
Alla fine ci siamo ritrovati come l’anno scorso solo io, Biohazard e Ulisse.

A differenza dell’ hackmeeting si è trattato di un piccolo meeting, di molte meno persone. Avevamo deciso di contribuire in qualche modo stavolta; così ulisse ha tenuto un talk sui microcontrollers(con un laboratorio abbinato) e io un piccolo laboratorio per costruire un fonera robot. Il laboratorio della fonera si è rivelato fallimentare per motivi meccanici e di alimentazione. Nessuno mi ha aiutato, però molte persone mi hanno fatto domande e si sono interessate. Ho avuto anche l’onore di incontrare il mitico De Gregorio, relatore al PyCon1 e PyCon2, che ha dato anche lui una occhiata al mio sistema python-robot-fonera .

Il posto era a San Donà di piave, in provincia di Venezia, vicino a Jesolo.
Io e Ulisse siamo arrivati insieme Venerdì 19 Settembre verso sera, mentre bio era già arrivato essendo più vicino.
Era un posto che doveva diventare tipo un museo, ma poi il progetto è stato abbandonato ed è rimasto lo stabile non finito. Così gli organizzatori lo hanno adibito per il meeting. È composto da un locale spazioso principale, che dava accesso al bagno e dove c’era un piccolo angolo bar e un tavolo stile bancarella con portatili, casse audio, luci e una batteria completa che continuavano a suonare durante la giornata.
C’era poi una sala “mensa”, che non ho visto, e la mitica sala LAN e zona talk. In effetti non era molto grande questa sala lan: c’erano svariati tavoli in legno messi in file parallele, mentre all’ ingresso della stanza c’era su un muro il telo per la proiezione delle slide dei talk.
Inutile dire che non essendoci infissi la notte era abbastnza fredda.
Al piano superiore c’era posto per dormire tranquilli, all’ esterno molta gente dormiva in tenda, però noi abbiamo dormito nella sala lan al freddo: 16°C (registrati con tester che misura temperatura verso le 2.00am). Il motivo di ciò era il fatto che avevamo portatili e svariato materiale elettronico sparso, e non potevamo dormire tranquilli senza metterlo via, e non potevamo mettere via tutta quella roba  così. Allora ho proposto di dormire a fianco al tavolo, anche per controllare i nostri possessi. Questo non perchè non mi fido della gente dell’ esc,  anzi! c’è gente più brava e più onesta di me, però il fatto è che facilmente qualcuno può arrivare dall’ esterno fingendosi visitatore e ripulire la zona di portatili…

La prima notte di Venerdì abbiamo lavorato sul robot e sistemato varie cose anche per il talk di Ulisse successivo, poi si è parlato  etc.. Alla fine siamo andati a dormire verso le 4.00. Il problema non è stato tanto il freddo, quanto l’aria che passava, dovuta alla relativa vicinanza con il mare, che crea correnti d’aria…
Il giorno dopo ci siamo attrezzati io e Ulisse per fare autonomamente colazione verso le 8.00-8.30 … io avevo messo la sveglia verso le 7.30, però Ulisse mi ha poi informato che era suonata continuamente ma non mi ero svegliato (non sò come fa Ulisse ad essere onniscente che vede e sente tutto ad ogni ora). Quindi dopo appunto questa colazione blanda a un bar vicino siamo andati con Bio sveglio al supermarket per prendere qualcosa da mangiare per mezzogiorno e sera…
Abbiamo preso pane, salumi e formaggi per fare panini semplici, poi degli ottimi biscotti al burro( presi più per utilizzare la scatola come porta componenti più che per mangiarli).

Fino a mezzogiorno circa siamo stati molto in attesa per il talk di ulisse che non cominciava più… poi alla fine li hanno spostati di qualche ora perchè tutti dormivano. Ulisse è poi finalmente riuscito a parlare al suo talk , generando anche non poco pubblico di gente che anche prendeva appunti su quello che diceva!
Dal mio canto ho stupidamente dimenticato non una ma due fonere che avevo lasciato sul tavolo a casa, pronte e formattate. Fortunatamente avevo tutto il software e un tizio molto simpatico ha gentimente acconsentito a prestarmene una sua fonera modello 2100 come “da sistemare”. Inutile dire che sono bastati pochi minuti per formattarla e mettere python tutto funzionante. I problemi sono stati altri: come al solito l’alimentazione con regolatori che scaldano fino alla morte e pic che non funzionano. Lo scopo iniziale era quello di pilotare 2 motori in digitale con un l293d. A prima vista sembra la cosa + facile del mondo, però prima di riuscire a fare qualcosa Ulisse ha dovuto flashare una ventina di volte un pic. Quando finalmente funzionava c’era un disturbo causato da interferenze dei motori sul pic, allora non si è poi più potuto fare nulla.Ulisse aveva una scheda fotoaccoppiata pronta ma non c’era modo di collegare bene i motori con i cavi etc per chiuderla dentro…. tutto per questa cagata.
Morale: MAI portare roba HARDWARE non testata o non già preparata prima.

Per il resto tutto bene: ho aiutato bio a sistemare xubuntu sul suo portatile… poi ho mostrato conky e altre cose del mio desktop a un tizio

Sabato abbiamo dormito presto verso le 2.00, il mattino ci siamo avviati in stazione salutando la gente sveglia… Ulisse per rimediare al vento del giorno prima aveva inventato un sistema tattico coprendosi da un lato con la mia valigia e poi dormendo sopra un asse di legno…

Il ritorno è stato molto faticoso, io inoltre ho avuto eccezionalmente un mal di testa esagerato( probabilmente dovuto allo scarso cibo e interminabili ore di veglia) il che mi ha meravigliato, perchè solitamente ho il mal di testa una volta l’anno circa…In treno ho tentato di dormire in diversi modi in poltrona, maggior parte del viaggio lo ho fatto dormendo

Scene da ricordare:
- Al ritorno dalla colazione di sabato io e Ulisse sentiamo russare FORTISSIMO anche da fuori dell’ edificio; meravigliati entriamo nella sala principale, dove dei tizi sogghignanti avevano piazzato un microfono amplificato molto forte a uno che stava dormendo russando. Il risultato era che si sentiva russare fortissimo, e la gente a fianco continuava a ridere sottovoce per non svegliare… Poi il tizio si è mosso, è caduto il microfono, ha fatto un tonfo fortissimo, il tizio si è  svegliato, ha preso il microfono e fa “salve a tutti!”

- Io, stanco dopo le poche ore di sonno di Venerdì, al Sabato sera tardi mi ritorvo morto sulla sedia con Ulisse e Bio che mi guardano meravigliati, poi dovevo fare qalcosa con il portatile, ed ho dunque assunto una posa improponibile che potete vedere anche grazie alla foto scattata da Biohazard

- In un secondo momento invece ho dato fuoco a resistenze da 22 ohm con una pila al piombo, su richiesta di bio, generando molto fumo e puzza!

Parte delle foto sono ora a http://picasaweb.google.it/otacon22otaku/ESC2k08#
C’è anche un video stupido!