The eye gaze analysis represents a challenging field of
research, since it offers a reproducible method to study the mechanisms of the brain. Eye movements are arguably the most frequent of all human movements and an essential part of human vision: they drive the fovea and consequently, the attention towards regions of interest in space. This enables the visual system to fixate and to process an image or its details with high resolution: act of fixation. This chapter investigates some common techniques and algorithms to study human vision.
Bayesain Hypothesis of Selective Attention - Raw 2011 posterGiacomo Veneri
The aim of the study is to understand the process of target averaging during the selection process. We analyzed the probability to select the target after a fixation outside ROIs from the duration of fixations and the distance to the target. We aimed to respond to the question “is it possible to predict the selected area?” . In this study we tested the presence of information in non-ROI fixation data about the occurrence of a target at the next saccade. A classification algorithm was trained to predict the target vs. non-target outcome (dependent variable) of a saccade from summary statistics of fixation data (covariates). We claim that significantly accurate predictions are substantial evidence to support the hypothesis of "presence of information".
The eye gaze analysis represents a challenging field of
research, since it offers a reproducible method to study the mechanisms of the brain. Eye movements are arguably the most frequent of all human movements and an essential part of human vision: they drive the fovea and consequently, the attention towards regions of interest in space. This enables the visual system to fixate and to process an image or its details with high resolution: act of fixation. This chapter investigates some common techniques and algorithms to study human vision.
Bayesain Hypothesis of Selective Attention - Raw 2011 posterGiacomo Veneri
The aim of the study is to understand the process of target averaging during the selection process. We analyzed the probability to select the target after a fixation outside ROIs from the duration of fixations and the distance to the target. We aimed to respond to the question “is it possible to predict the selected area?” . In this study we tested the presence of information in non-ROI fixation data about the occurrence of a target at the next saccade. A classification algorithm was trained to predict the target vs. non-target outcome (dependent variable) of a saccade from summary statistics of fixation data (covariates). We claim that significantly accurate predictions are substantial evidence to support the hypothesis of "presence of information".
Repository Pattern: Un buon design al servizio della testabilità.
Le slides si riferiscono al talk tenuto in Mikamai Milano durante i TDD Meetup di Milano, il 02/05/2017
Simple presentation on Twisted fundamentals.
Originally part 4 of a 4 lectures seminar for the Networking class of the Computer Science course at the University of Parma
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
La persistenza delle entity del domain model è, a dispetto dell'apparente semplicità, un task applicativo che nasconde molteplici problematiche. Perché allora non avvalersi di quello che, attualmente, è il più utilizzato framework di persistenza al mondo?
NHibernate consente di sfruttare al meglio le tecnologie di accesso ai dati, di minimizzare la scrittura di codice e di evitare quindi errori inutili. In una frase, aumentare la nostra produttività.
Introduzione al Domain Model
Domain Model e modello E/R: Paradigm Mismatch
Nasce l'esigenza di un ORM: Introduzione al progetto NH
Architettura di NHibernate: le factory, la session, e le entity
Demo: Configurazione, Il file di mapping, e un esempio con un Oggetto di dominio semplice
Demo: Dirty Checking, Optimistic Lock, e Unit of Work (IndentityMap e Transparent Write Behind)
Presentazione e demo di NHDomain Mapper
Persistenza di un grafo complesso
Strategie di retrieving dei dati
Esempio di architettura di un'applicazione reale
Q & A
Giacomo Veneri Thesis 1999 University of SienaGiacomo Veneri
In proteomics, two dimensional gel electrophoresis (2–DE) is a separation technique for proteins.
Gel electrophoresis is registered and the final digital image is computer analyzed for protein spots finding; the protein spots can be detected by visual inspection of a digital gel image or by image processing algorithm. On computer image analysis, difficulties arise from image noise, spot saturation and irregular geometric distortions.
Aiming at the automated analysis of large series of 2–DE images, the bottleneck is to solve the two most basic algorithmic problems: identifying protein spots and computing the protein spots map in order to compare it to database or different image.
We developed a robust Analysis of Variance (ANOVA) based algorithm able to excite spot in order to be easy found and separated by classic algorithm as edge detection or watershed.
Study the influence of (eye) motor control on selective attention
Develop a method to extract motor control parameters during visual search
Develop a method to extract selective attention features during visual search
Repository Pattern: Un buon design al servizio della testabilità.
Le slides si riferiscono al talk tenuto in Mikamai Milano durante i TDD Meetup di Milano, il 02/05/2017
Simple presentation on Twisted fundamentals.
Originally part 4 of a 4 lectures seminar for the Networking class of the Computer Science course at the University of Parma
Presentazione sull'evoluzione di Struts, primo framework web MVC in ambito Java e sul merger con WebWork, effettuata durante la (prima!) tappa di Torino della prima edizione di JavaDay '06.
La persistenza delle entity del domain model è, a dispetto dell'apparente semplicità, un task applicativo che nasconde molteplici problematiche. Perché allora non avvalersi di quello che, attualmente, è il più utilizzato framework di persistenza al mondo?
NHibernate consente di sfruttare al meglio le tecnologie di accesso ai dati, di minimizzare la scrittura di codice e di evitare quindi errori inutili. In una frase, aumentare la nostra produttività.
Introduzione al Domain Model
Domain Model e modello E/R: Paradigm Mismatch
Nasce l'esigenza di un ORM: Introduzione al progetto NH
Architettura di NHibernate: le factory, la session, e le entity
Demo: Configurazione, Il file di mapping, e un esempio con un Oggetto di dominio semplice
Demo: Dirty Checking, Optimistic Lock, e Unit of Work (IndentityMap e Transparent Write Behind)
Presentazione e demo di NHDomain Mapper
Persistenza di un grafo complesso
Strategie di retrieving dei dati
Esempio di architettura di un'applicazione reale
Q & A
Giacomo Veneri Thesis 1999 University of SienaGiacomo Veneri
In proteomics, two dimensional gel electrophoresis (2–DE) is a separation technique for proteins.
Gel electrophoresis is registered and the final digital image is computer analyzed for protein spots finding; the protein spots can be detected by visual inspection of a digital gel image or by image processing algorithm. On computer image analysis, difficulties arise from image noise, spot saturation and irregular geometric distortions.
Aiming at the automated analysis of large series of 2–DE images, the bottleneck is to solve the two most basic algorithmic problems: identifying protein spots and computing the protein spots map in order to compare it to database or different image.
We developed a robust Analysis of Variance (ANOVA) based algorithm able to excite spot in order to be easy found and separated by classic algorithm as edge detection or watershed.
Study the influence of (eye) motor control on selective attention
Develop a method to extract motor control parameters during visual search
Develop a method to extract selective attention features during visual search
Industrial IoT - build your industry 4.0 @techitalyGiacomo Veneri
Explore industrial processes, devices, and protocols
Design and implement the I-IoT network flow
Gather and transfer industrial data in a secure way
Get to grips with popular cloud-based platforms
Understand diagnostic analytics to answer critical workforce questions
Discover the Edge device and understand Edge and Fog computing
Implement equipment and process management to achieve business-specific goals
Raw 2009 -THE ROLE OF LATEST FIXATIONS ON ONGOING VISUAL SEARCH A MODEL TO E...Giacomo Veneri
The aim of the study is to understand the selection process, that modulates the exploration mechanism, during the execution of a high cognitively demanding task. The main purpose is to identify the mechanism competition mechanism between top-down and bottom-up. We developed an adaptive system trying to emulate this mechanism.
In proteomics, two dimensional gel electrophoresis (2–DE) is a separation technique for proteins.
Gel electrophoresis is registered and the final digital image is computer analyzed for protein spots finding; the protein spots can be detected by visual inspection of a digital gel image or by image processing algorithm. On computer image analysis, difficulties arise from image noise, spot saturation and irregular geometric distortions.
Aiming at the automated analysis of large series of 2–DE images, the bottleneck is to solve the two most basic algorithmic problems: identifying protein spots and computing the protein spots map in order to compare it to database or different image.
We developed a robust Analysis of Variance (ANOVA) based algorithm able to excite spot in order to be easy found and separated by classic algorithm as edge detection or watershed. The implementation is done in a client standalone application called VisualBio.
EVA – EYE TRACKING - STIMULUS INTEGRATED SEMI AUTOMATIC CASE BASE SYSTEMGiacomo Veneri
In a real world visual search is a common task depending from
sensory, perceptual and cognitive processes. Different classes
of eye movements are necessary to hold an image on the retina
during head rotation or movement of the image, and to move
the eye suddenly to a new point of interest in space. From a
functional point of view, two major classes of eye movements
are described in humans: those stabilizing gaze (optokinetic
nystagmus, oculovestibular reflex) and those movinggaze
(saccades, pursuits and vergence). Under natural conditions,
however, a mix of all kinds of eye movements permit
continuous scanning of the visual scene. The sequence of
fixations and saccades during visual exploration isan
expression of a number of cognitive processes; the use of
standardized tasks with pre-defined spatial-temporal variables
allows us to assess specific cognitive domains, such as
perception, attention, memory, preference and motivation.
Manipulating the search task can vary the demands on brain. In
turn, brain modulates visual search by selecting and limiting
the information available at various levels of processing.
The EVA software is a complete system based on a set of
stimulus and patient’s case able to stress brain functionalities in
order to assess some cognitive functions.
THE ROLE OF LATEST FIXATIONS ON ONGOING VISUAL SEARCH Giacomo Veneri
The aim of the study is to understand the selection process, that modulates the exploration mechanism, during the execution of a high cognitively demanding task. The main purpose is to identify the mechanism competition mechanism between top-down and bottom-up. We developed an adaptive system trying to emulate this mechanism.
Evaluating Human Visual Search Performance by Monte Carlo methods and Heurist...Giacomo Veneri
Visual search is an everyday activity that enables
humans to explore the real world. Given the visual input,
during a visual search, it’s required to select some aspects of the input in order to move to the next location. Exploration is guided by two factors: saliency of image (bottom-up) and endogenous mechanism (top-down). These two mechanisms interact to perform an efficient visual search. We developed a stochastic model, the ”break away from fixations” (BAF), to emulate the visual search on a high cognitively demanding task such as a trail making test (TMT). The paper reports a case study providing evidence that human exploration performs an efficient visual search based also on an internal model of regions already explored.
Study the influence of (eye) motor control on selective attention
Develop a method to extract motor control parameters during visual search
Develop a method to extract selective attention features during visual search
2. Summary
Introduzione
I concetti del Web 3
I rischi del Web 2 (i 4 gironi)
Programming by Pattern (parlare lo stesso
linguaggio)
Aspect Object Programming
MVC applicato a Java e .NET
SOA/Ajax frameworks
3. Web 2.0 > Web 3.0 Verso il 3.0
Web 1
Web 2.0
Web 3.0
HTML, AJAX, RIA IA,
HTTP, WS o Il Web
XML Servizi Semantico
RDB, Integrati GeoSpatial
PSTN Social (il 3D??)
Network
19. Il web Semantico e Intelligente
Natural Language
Ontologie OWL
Pattern Recognition
Inferenza Bayesian
Human Computer Interaction
SmartPhone e STB
Inserimento Username e Pwd => SSON
Uno studio del 2008 dimostro’ che uno dei più grossi
impedimenti dei siti basati su AJAX er la’bailitazione
javascript nei browser
20. L’albero Tecnologico
Teorema di Bayes
Neural network
Pattern Recognition
Statistica inferenziale
SVM
Text Mining
Genetic Algorithm Natural Language
Web Advertising Web Semantico
21. I 4 Gironi del Web 2.0
Internet un Business Infernale
25. Singleton («staticone»)
Descrizione C#
static Singleton
Consiste nel creare una instance=null;
istanza di classe unica per
tutto il contesto Singleton() { }
dell’applicazione senza public static Singleton
doverla passare tra i Instance {
metodi
get {
Ad esempio l’helper che if (instance==null) {
accede ai database instance = new
Singleton(); }
return instance; }
}
26. Ricordiamoci che
Il Web è MultiThread!
Un Thread è
concorrente con un
altro Thread
Un Application Server
gestisce l’applicazione
con un Pattern detto
Container
27. Il ThreadLocal
// C#
ThreadLocal<string> ThreadName = new
ThreadLocal<string>(() => {
return "Thread" +
Thread.CurrentThread.ManagedThreadId; }
);
// Java
private static int nextSerialNum = 0;
private static ThreadLocal serialNum = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Integer(nextSerialNum++); }
};
28. Flyweight
Flyweight è un Design pattern che permette di separare la
parte variabile di una classe dalla parte che può essere
riutilizzata, in modo tale da poter avere quest'ultima
condivisa fra istanze differenti della parte variabile.
Modo Pulito: ad esempio per contenere delle informazioni
comuni a diverse classi senza doverle istanziare tutte le
volte. (Ex. La gestione di un Pool di configurazioni statiche
per la classe)
Modo Sporco: per contenere informazioni ridondanti utili
per l’efficienza. (Ex. Il figlio che si riferisce al padre e
viceversa)
29. Thread Pool pattern
Object Pool
Thread pool pattern: avere una lista di thread in
cache che giriamo senza dovere necessariamente
ricrearlo tutte le volte
Object pool pattern: avere una lista di oggetti in
cache che modifichiamo senza dover sempre
ricrearli migliorando l’efficienza
30. L’efficienza non è come sembra!
kCal consumate da
una persona per alzare
un peso di 1Kg di
1Metro è l’80% di
quello di una macchina
a gasolio
Il garbage collector
gioca brutti scherzi
31. Lazy initialization
La Lazy initialization
static Singleton
instance=null;
("inizializzazione
pigra") è la tattica di
Singleton() { }
instanziare un oggetto
public static Singleton solo nel momento in
Instance {
cui deve essere usato
get { per la prima volta.
if (instance==null) {
instance = new Utilizzato da Hibernate,
Singleton(); }
return instance; } JPA
}
32. Il GC
Di solito è basato su 3 Mai forzarlo!
contenitori di memoria System.gc()
(tri-colour marking) di
volta in volta che un L'impatto sulle
oggetto diventa prestazioni causate dal
«anziano» viene GC è apparentemente
spostato in un aria di casuale e difficile da
memoria che viene prevedere.
ripulità più raramente
Un Object Pool farà invecchiare i
vostri oggetti!!!
33. Listener vs Observer
E’ un ascoltatore in L'Observer
grado di registrare ("osservatore") definisce
eventi. una dipendenza uno a
Il Listener è passivo molti fra oggetti diversi,
in maniera tale che se un
oggetto cambia il suo
stato, tutti gli oggetti
dipendenti vengono
notificati del
cambiamento avvenuto e
possono aggiornarsi.
L’Observer è Attivo
34. Il Visitor
Il Visitor ("visitatore") Immaginiamo di avere
permette di separare un (Database) Helper
un algoritmo dalla che recupera una
struttura di oggetti lunga lista di oggetti e
composti a cui è li vuole paginare
applicato, in modo da sfruttano i costrutti
poter aggiungere nuovi SQL specifici per la
comportamenti senza versione del DB.
dover modificare la Utiliziamo un Visitor od
struttura stessa. un Observer?
(wikipedia)
37. AOP
La programmazione orientata agli aspetti è un paradigma di programmazione
basato sulla creazione di entità software - denominate aspetti - che
sovrintendono alle interazioni fra oggetti finalizzate ad eseguire un compito
comune. Il vantaggio rispetto alla tradizionale Programmazione orientata agli
oggetti consiste nel non dover implementare separatamente in ciascun oggetto
il codice necessario ad eseguire questo compito comune.
Logging
Security
38. AspectJ
Se ne definisce l’aspetto e poi si definisce il punto
di entrata.
pointcut set() : execution(* set*(*) ) && this(Point) && within(com.company.*);
aspect Logger {
void Bank.transfer(Account fromAcc, Account toAcc, int amount, User user, Logger
logger) {
logger.info("transferring money...");
}
}
aspect DisplayUpdate {
void Point.acceptVisitor(Visitor v) { v.visit(this); }
// other crosscutting code... }
41. Bridge vs Adapter
Bridge Adapter
Astrazione della classe E’ un Wrapper
Il driver JDBC
42. Chain of Responsability
Il pattern permette di separare gli oggetti che
invocano richieste dagli oggetti che le gestiscono
dando ad ognuno la possibilità di gestire queste
richieste. Viene utilizzato il termine catena perché
di fatto il la richiesta viene inviata e "segue la
catena" di oggetti, passando da uno all'altro, finché
non trova quello che la gestisce. (WikiPedia)
43. MVC («il» pattern architetturale
del WEB)
Model-View-Controller
(abbreviato spesso in
MVC), che consiste nel
separare i componenti
software che
implementano il modello
delle funzionalità di
business (model), dai
componenti che
implementano la logica
di presentazione (view) e
da quelli di controllo che
tali funzionalità utilizzano
(controller).
50. Richfaces / Ajax4JSF
Agiscono solo sulla view
Si deve solo configurare una servlet in web.xml
Non funzionano bene su Tomcat ma solo su
Glassfish
http://docs.jboss.org/richfaces
sostituite il veccio command button jsf con
<a4j:commandButton value="do" reRender="table" action="#{myHandler.myAction}" id="button"/>
non fate altro non è necessario, assicuratevi solo che il componente da riaggiornare abbia l'id
corretto (in questo caso "table").
51. Web.xml
<!-- Plugging the "Blue Sky" skin into the project -->
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<!-- Making the RichFaces skin spread to standard HTML controls -->
<context-param>
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
<param-value>enable</param-value>
</context-param>
<!-- Defining and mapping the RichFaces filter -->
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
52. Asp.NET AJAX
Script Manager: è il controllo responsabile <asp:UpdatePanel ID="MyUpdate"
della gestione delle risorse script usate dai runat="server">
componenti client, per l’aggiornamento <ContentTemplate>
parziale delle pagine, per la localizzazione
e altre funzionalità eventualmente introdotte <asp:TextBox ID="txtRicerca" runat="server"
da nostre customizzazioni. Da questo />
dipendono altri controlli per i quali la sua
presenza è indispensabile. In particolare <asp:Label ID="lblRisultato" runat="server"
l’Update Panel, l’Update Progress e il Timer Font-Bold="True" />
non ne possono prescindere.
Update Panel: permette di aggiornare una
parte di una pagina web invece dell’intera <asp:LinkButton ID="LinkButton1"
pagina. runat="server" OnClick="LinkButton1_Click">
Invia
Update Progress: fornisce un’indicazione </asp:LinkButton>
sullo stato di aggiornamento di una parte di
pagina gestita tramite un controllo Update <asp:UpdateProgress ID="UpdateProgress1"
Panel. runat="server">
Timer: garantisce l’avvio di un’operazione <ProgressTemplate>
di post-back a intervalli di tempo predefiniti. Attendere, richiesta in corso ...
Unitamente al controllo Update Panel può </ProgressTemplate>
limitare l’operazione di aggiornamento alla </asp:UpdateProgress>
sola parte contenuta nell’update panel.
</ContentTemplate>
</asp:UpdatePanel>
53. Analisi
Vantaggi Svantaggi
Separazione della View dal Un piccolo cambio è un
suo controllo grande cambio
Maggiore efficienza Utilizzo di risorse
57. Caricamento
Google Libraries API - Developer's Guide
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.
4.2/jquery.min.js"></script>
58. JQuery
Javascript Code Sippet
In Javascript la base è $("a");
tutti i link nel documento
accedere ad un elemento
$("#id");
del DOM seleziona un singolo
elemento con id «id»
$("input[type=‘hidden']");
$("#id").each(function () {
var id = this.id; });
ciclare
59. Manipolare il contenuto
Javascript Code snippet
$("p").text();
La funzione bind permette
testo del paragrafo
di gestire gli eventi $("p").html();
Tramite unbind si possono "testo del
<strong>paragrafo</strong>«
rimuovere le associazioni
$("a").bind("click",function
(event) {
alert($(this).attr("href”
));
});
60. AJAX
AJAX Code Snippet
La chiamata $.ajax({
url : "servente.html",
ajax è molto
success : function
compatta (data,state) {
$("#risultato").html(data);
$("#stato").text(stato);
},
error : function
(req,state,error) {
alert("catch event"+stato);
}
});
62. Unit Testing
Nella Programmazione informatica, lo unit testing è una
procedura usata per verificare singole parti di un codice
sorgente.
Eseguire il test (offline) della persistenza, della business
logic, della sicurezza….dell’interfaccia
Java
Junit
Eclipse
.NET
Nunit
Visual Studio 2010