Integrare PeerSim con Eclipse

PeerSim, per chi non lo conoscesse, è un noto simulatore per reti P2P, scritto in Java. Potete trovare qui la pagina ufficiale di tale progetto.

Soprattutto quando si parla di Java sappiamo che è molto comodo utilizzare Eclipse. In questo articolo parlerò infatti di come poter configurare quest’ultimo per poter lavorare con PeerSim. Ho deciso di scriverlo dopo aver letto uno dei pochi post che tratta dell’argomento, e che risolve la cosa in un modo alquanto bizzarro.

Continua a leggere

Intelligenza Artificiale: Markov Decision Process

In Intelligenza artificiale, in alcune situazioni, hai bisogno di una semplice sequenza di azioni per raggiungere in determinato obiettivo, partendo da uno stato noto; in tutti quegli ambienti dove invece le azioni non sono deterministiche (non deterministiche o stocastiche), questo non è più sufficiente: c’è bisogno di una policy, ovvero di una politica che ci dice qual’è l’azione giusta da fare in ogni stato.

Le Markov Decision Process sono una struttura matematica che ci aiuta a costruire queste policy in ambienti stocastici dove si conoscono le probabilità che si verifichino determinati risultati.

In questo post, io vi darò una brevissima introduzione e poi vi mostrerò le parti essenziali della mia implementazione, in python, dei più importanti algoritmi che vi possono aiutare per trovare le policy in ambienti stocastici. Potete trovare una più dettagliata descrizione delle Markov Decision Process nelle mie slide che ho preparato per un seminario nella mia università.

Continua a leggere

Richiesta Network Time Protocol in C#

Di recente, ho scritto un’applicazione in C# che ha bisogno di conoscere se il sistema ha il tempo corretto. Ho perciò fatto una classe che recupera il tempo utilizzando i server NTP. La classe è scritta per fare in modo che non vengano richiamati sempre gli stessi server, utilizzando un semplice vettore circolare. Per i dati che vengono ritornati dal server, vi invito a leggere RFC-2030.

Continua a leggere

ExitWindowsEx in C#

Vi posto una semplice classe per spegnere, riavviare e fare logoff in Windows utilizzando il famoso ExitWindowsEx. Per ogni metodo viene fatto overloading con un altro che può forzare l’azione. In altre parole, l’azione viene eseguita proibendo a Windows di mandare il messaggio WM_QUERYENDSESSION. In questo modo l’utente non potrà mai annullare l’azione.

Continua a leggere

Nascondere la finestra della Console in C#

Di recente ho realizzato un’applicazione per controllare (e limitare) il tempo che mio fratello impiega giornalmente al computer (cattivo!). Avendo la necessità di nascondere qualunque finestra mi sono ingegnato nel trovare una soluzione. Vi mostrerò pertanto la mia personale soluzione per farlo considerando sia un progetto di tipo Console Application che uno di tipo Windows Form Application.

Continua a leggere