Post

Visualizzazione dei post da 2011

Quicksort

Ciao gente, da quanto tempo! Come state? Io benone :-) Da qualche giorno ho iniziato a seguire il corso di algoritmi del MIT, molto bello. Il corso è fruibile sul loro sito su cui sono presenti le videolezioni, le trascrizioni, appunti, ecc... Il link è: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/ Ora... Invogliato da questo corso di algoritmi ho deciso di togliermi dalla scarpa un sassolino che avevo sin dai tempi dell'università ovvero capire il misterioso quicksort. Lo so, sarò una zappa io, però mi ha sempre messo in difficoltà :-/ Comunque l'altra mattina in un momento di calma in ufficio ho deciso di dedicarmici e sono riuscito al primo tentativo :-)
Ovviamente questa implementazione è più lenta del sorted() della libreria standard che: a) Non sono sicuro sia un quicksort b) Probabilmente è fatta in C e compilata. In ogni caso è stato un bell'esercizio e comunque è anche molto mo…

Una macchina a stati finiti

Immagine
Buon pomeriggio gioventù, Ieri sera mi sono imbattuto nell'avventurosa creazione di un automa a stati finiti usando Python. La cosa mi ha messo un po'in difficoltà, soprattutto perché viene difficile non pensare all'automa come ad un circuito ma come un software. In fondo con poche porte logiche e qualche flip flop si fanno anche automi complessi. In ogni caso, parlandone col mio buon amico e consulente informatico Ennio ne sono venuto a capo :-) Facciamo un esempio: Supponiamo di avere un automa fatto da 3 stati: IDLE, WORK, COMMUNICATION gli input che uniscono i tre stati sono: - lavora - dimmi - fatto

Fig.1 - Diagramma dell'automa dell'esempio
Partiamo quindi col definire la struttura base di uno stato: class State: def lavora(self): return None def dimmi(self): return None def fatto(self): return None
Questa classe apparentemente inutile è l'equivalente di una classe astratta di Java. Le classi che rappresentano gli stati non faranno…

Gaming can make a better world

Immagine
Ci tengo a riportare questo talk della mitica Jane McGonigal in cui viene spiegato il potenziale dei gamers (gli appassionati di videogiochi) e come secondo lei questo potenziale potrebbe essere sfruttato per salvare il mondo e renderlo migliore.
Jane McGonigal per chi non lo sapesse è una game designer di fama internazionale,
lavora in questo campo da anni e fa ricerca proprio nel campo di creare giochi educativi
e di rendere positivo il comportamento umano tramite i videogame.
Il suo sito è:
http://janemcgonigal.com
Fateci un salto, vi assicuro che persone come Jane sono veramente da considerare modelli a cui ispirarsi.

Applicazioni web partendo da zero! Parte 2

Ben tornati a tutti!
Oggi parliamo di come fa il web server a comunicare con le applicazioni web. A quanti fosse sfuggito suggerisco di leggere la prima parte prima di questa, dato che contiene la prima parte del discorso!


Common Gateway Interface
Il sistema CGI è il più vecchio in assoluto e forse concettualmente anche il più semplice. In sostanza quando il server riconosce un URL che punta ad un programma invece che ad un documento statico il server esegue il programma e restituisce sotto forma di pagina HTML il risultato del programma lanciato. Il passaggio di parametri avviene tramite variabili d'ambiente oppure tramite standard input e la risposta del programma viene letta dal server sullo standard output. Il problema principale di questa tecnologia è che viene avviato un processo per ogni chiamata e questo sistema è lento, soprattutto se il programma in questione è scritto in perl per cui va anche interpretato. Ma in ogni caso c'è anche un limite al numero massimo di processi …

Applicazioni web partendo da zero! Parte1

Immagine
Introduzione Questo tutorial più che altro è una raccolta di appunti che ho preso studiando le applicazioni web per mio gusto personale partendo completamente a digiuno. Gli unici veri siti che ho sviluppato erano per lo più statici e risalgono a oltre dieci anni fa, quando ancora facevo il liceo. Probabilmente i più "skillati" (che brutta parola :-/ ) tra di voi leggendolo si faranno al più due risate ma non troveranno nulla di nuovo, anzi... forse mi correggeranno qualche svarione o, ritenendomi poco rigoroso, neanche andranno molto oltre le prime righe. In ogni caso io ho bisogno di scrivere le cose che ho imparato per non dimenticarle e forse in questo modo posso rendere un servizio ad altri che come me partono da zero.
Che cosa è un'applicazione web? Un'applicazione web è un programma che gira su un server. Bella scoperta... In realtà non è solo questo. Un'applicazione web è un programma che gira su un web server e svolge dei compiti particolari che il web server…

Reborn!

Ciao Ragazzi,
L'isola del tesoro è di nuovo in piedi :-)
A presto!