Muoversi in VR - Marco Giammetti - Codemotion Rome 2017Codemotion
Uno studio sul design delle locomozioni disponibili nella realtà virtuale, le pratiche migliori per non far sentire male il giocatore e quelle più uniche e strambe, un modo per studiare meglio il Gameplay del proprio prodotto in questo mercato emergente.
Tessel: The End of Web Development (as we know it)TechnicalMachine
The internet of things has been upon us for years but hasn't lived up to its name. At Technical Machine (http://technical.io), we believe it's because the internet of things should be created by the people who know the internet best: web developers. Find out about the software and hardware that drives the Wifi-enabled, JavaScript powered, Node.js compatible microcontroller for web developers. When web development is freed from the confines of a screen it becomes even more powerful. It becomes about making new experiences. Pre-order a tessel at http://tessel.io/.
La Matematica e la fisica da Pong ai giochi tripla APier Luca Lanzi
Presentazione per l'associazione Mathesis rivolto alle scuole superiori.
Tutti i videogiochi, anche i più semplici,
nascondono modelli matematici e fisici
sorprendentemente complessi. Faremo
un viaggio nel mondo dei videogiochi
alla scoperta della matematica e della
fisica che essi nascondono, partendo
dal primo videogioco di successo,
Pong, fino ad arrivare ai recenti titoli
“tripla A”.
Muoversi in VR - Marco Giammetti - Codemotion Rome 2017Codemotion
Uno studio sul design delle locomozioni disponibili nella realtà virtuale, le pratiche migliori per non far sentire male il giocatore e quelle più uniche e strambe, un modo per studiare meglio il Gameplay del proprio prodotto in questo mercato emergente.
Tessel: The End of Web Development (as we know it)TechnicalMachine
The internet of things has been upon us for years but hasn't lived up to its name. At Technical Machine (http://technical.io), we believe it's because the internet of things should be created by the people who know the internet best: web developers. Find out about the software and hardware that drives the Wifi-enabled, JavaScript powered, Node.js compatible microcontroller for web developers. When web development is freed from the confines of a screen it becomes even more powerful. It becomes about making new experiences. Pre-order a tessel at http://tessel.io/.
La Matematica e la fisica da Pong ai giochi tripla APier Luca Lanzi
Presentazione per l'associazione Mathesis rivolto alle scuole superiori.
Tutti i videogiochi, anche i più semplici,
nascondono modelli matematici e fisici
sorprendentemente complessi. Faremo
un viaggio nel mondo dei videogiochi
alla scoperta della matematica e della
fisica che essi nascondono, partendo
dal primo videogioco di successo,
Pong, fino ad arrivare ai recenti titoli
“tripla A”.
l mondo stà cambiando e siamo sempre più "connessi". L'esigenza sempre più pressante di ottimizzare le procedure e ridurre i costi porta ad un sempre maggiore interesse verso soluzioni fruibili anche da dispositi mobili.
Vedremo cosa serve per sviluppare siti ed applicazioni web destinate a dispositivi mobili: le caratteristiche, le tecniche e gli strumenti necessari alla produzione di applicazioni sulle maggiori piattaforme mobili, con particolare attenzione ai dispositivi rim, apple e nokia.
La sessione si rivolge a sviluppatori web che desiderino ampliare il proprio skill set con la capacità di esporre le proprie soluzioni sulle reti mobili.
MR:ROBOT è un robottino open source tutto da realizzare con le stampanti 3D, negli “Atelier Creativi” delle scuole e in tutti i FabLab o Maker Space. Gli studenti delle scuole possono cimentarsi con la modellazione 3D, con il making attraverso Elettronica e Stampa 3D, infine con il cooding. Il progetto è nato grazie alla sperimentazione degli studenti con il progetto MrNone (arToys Open Source). Nasce infatti dall’idea di inserire un arduino dentro il toys e rendendolo così programmabile.
Microsoft Kinect è un accessorio originariamente pensato per Xbox 360 ma che si è fatto strada anche per applicazioni non ludiche grazie alla sua semplicità d'uso e al suo SDK per il mondo .NET. In questa sessione introdurremo i concetti e le funzionalità che contraddistinguono la versione 1.0 di Kinect for Windows mettendo il luce pregi e difetti e cercando di dare un'idea di come possa essere sfruttato per realizzare applicazioni NUI di nuova generazione.
Slide della sessione "Introduzione a Kinect" tenuta durante il DotNetCampus 2014 a Roma il 10/05/2014
Ecco le mie slide su NodeJS al Napoli DevDay . Vedrete praticamente, con l'ausilio di snippet di codice, alcuni dei punti chiave di questo linguaggio.
Per vedere le slide con le gif funzionanti:
https://docs.google.com/presentation/d/1EDsvR99WUDx3IBhygYt51YKM1sA5UA_PJmaRFh9HTa4/edit?usp=sharing
A questo repository troverete gli esempi fatti durante il talk:
https://github.com/musikele/nodeJsExamples
Per testare le API rest io uso Advanced Rest Client, estensione di Chrome. Ricordatevi di settare l'encoding a application/json .
"Alice in WordPressLand" è un talk esperienziale nato dalle riflessioni post-WordCamp dal punto di vista di uno sviluppatore giornalmente alle prese con Web Framework, tecnologie e "linguaggi serissimi". La presentazione include una serie di analisi e valutazioni soggettive sui veri punti di forza di WordPress ed alcuni suoi aspetti (spesso poco tecnici) talvolta trascurati, ma determinanti per la sua adozione. Si passa, infine, per una serie di best practices - scoperte, autoimposte e affermatesi nel corso degli anni - che portano anche a ricongiugersi ai valori dell'Agile ed riscoprirne i principi per una concezione più profonda ed innovativa del ruolo di sviluppatore.
Cocos2d è un framework opensource per lo sviluppo di videogiochi 2d, integra al suo interno: - animazioni, transizioni, gestione menù - gestione di sprite, textureAtlas, Tile - due motori fisici (Box2D and Chipmunk) - un sound engine - un sistema particellare Noto principalmente su iPhone (con 2500+ giochi sullo Store) è ormai presente su linguaggi e piattaforme differenti (C++, C#, java e Javascript, HTML5). Il talk presenterà tutte le principali componenti presenti su cocos2d condendo il tutto con qualche esempio pratico su piattaforma iOS.
Programmazione degli ATTiny - Il computer nella scarpaPaolo Aliverti
Slide del workshop di programmazione del chip ATTiny come sostituto di arduino. Il chip ATTiny, di costo contenuto e di piccole dimensioni può stare in una scarpa (!) e può aiutarci nella realizzazione di progetti di Physical Computing
l mondo stà cambiando e siamo sempre più "connessi". L'esigenza sempre più pressante di ottimizzare le procedure e ridurre i costi porta ad un sempre maggiore interesse verso soluzioni fruibili anche da dispositi mobili.
Vedremo cosa serve per sviluppare siti ed applicazioni web destinate a dispositivi mobili: le caratteristiche, le tecniche e gli strumenti necessari alla produzione di applicazioni sulle maggiori piattaforme mobili, con particolare attenzione ai dispositivi rim, apple e nokia.
La sessione si rivolge a sviluppatori web che desiderino ampliare il proprio skill set con la capacità di esporre le proprie soluzioni sulle reti mobili.
MR:ROBOT è un robottino open source tutto da realizzare con le stampanti 3D, negli “Atelier Creativi” delle scuole e in tutti i FabLab o Maker Space. Gli studenti delle scuole possono cimentarsi con la modellazione 3D, con il making attraverso Elettronica e Stampa 3D, infine con il cooding. Il progetto è nato grazie alla sperimentazione degli studenti con il progetto MrNone (arToys Open Source). Nasce infatti dall’idea di inserire un arduino dentro il toys e rendendolo così programmabile.
Microsoft Kinect è un accessorio originariamente pensato per Xbox 360 ma che si è fatto strada anche per applicazioni non ludiche grazie alla sua semplicità d'uso e al suo SDK per il mondo .NET. In questa sessione introdurremo i concetti e le funzionalità che contraddistinguono la versione 1.0 di Kinect for Windows mettendo il luce pregi e difetti e cercando di dare un'idea di come possa essere sfruttato per realizzare applicazioni NUI di nuova generazione.
Slide della sessione "Introduzione a Kinect" tenuta durante il DotNetCampus 2014 a Roma il 10/05/2014
Ecco le mie slide su NodeJS al Napoli DevDay . Vedrete praticamente, con l'ausilio di snippet di codice, alcuni dei punti chiave di questo linguaggio.
Per vedere le slide con le gif funzionanti:
https://docs.google.com/presentation/d/1EDsvR99WUDx3IBhygYt51YKM1sA5UA_PJmaRFh9HTa4/edit?usp=sharing
A questo repository troverete gli esempi fatti durante il talk:
https://github.com/musikele/nodeJsExamples
Per testare le API rest io uso Advanced Rest Client, estensione di Chrome. Ricordatevi di settare l'encoding a application/json .
"Alice in WordPressLand" è un talk esperienziale nato dalle riflessioni post-WordCamp dal punto di vista di uno sviluppatore giornalmente alle prese con Web Framework, tecnologie e "linguaggi serissimi". La presentazione include una serie di analisi e valutazioni soggettive sui veri punti di forza di WordPress ed alcuni suoi aspetti (spesso poco tecnici) talvolta trascurati, ma determinanti per la sua adozione. Si passa, infine, per una serie di best practices - scoperte, autoimposte e affermatesi nel corso degli anni - che portano anche a ricongiugersi ai valori dell'Agile ed riscoprirne i principi per una concezione più profonda ed innovativa del ruolo di sviluppatore.
Cocos2d è un framework opensource per lo sviluppo di videogiochi 2d, integra al suo interno: - animazioni, transizioni, gestione menù - gestione di sprite, textureAtlas, Tile - due motori fisici (Box2D and Chipmunk) - un sound engine - un sistema particellare Noto principalmente su iPhone (con 2500+ giochi sullo Store) è ormai presente su linguaggi e piattaforme differenti (C++, C#, java e Javascript, HTML5). Il talk presenterà tutte le principali componenti presenti su cocos2d condendo il tutto con qualche esempio pratico su piattaforma iOS.
Programmazione degli ATTiny - Il computer nella scarpaPaolo Aliverti
Slide del workshop di programmazione del chip ATTiny come sostituto di arduino. Il chip ATTiny, di costo contenuto e di piccole dimensioni può stare in una scarpa (!) e può aiutarci nella realizzazione di progetti di Physical Computing
11. Foto by Massimo: www.flickr.com/photos/autunnodicoloriaquilonistimilano
12. Spazzino@Frontiers of interaction IV
“Alberto Sarullo's open-source
Lego mashup sensor robot
was the darling
of the event” (Bruce Sterling)
“Qui l’indicatore di geekdom è
andato proprio fuori scala.
Spazzino è uno Spime montato su
un Lego Mindstorm hackato con
componenti non standard. Kudos
ad Alberto Sarullo.” (Digital
Meadows Blog)
#Minstorm #SunSpot #Solar #Python
#Twitter #Bluetooth
http://spazzino.com
13. Porta iPad / Tablet realizzato
per accelerare il test
dell’applicazione per bambini
Timbuktu
Orientation: Landscape &
Portrait
18. Regole del gioco
Porta iPad
Griglia di 4x4 lettere
Ogni lettera ha un punteggio
Ogni lettera può avere un
modificatore di punti (3L, 2W)
Scopo: usare lettere adiacenti
per trovare parole sulla griglia
La parole possono essere
orientate in
orizzontale, verticale e
diagonale e possono seguire
linee spezzate
19. Una partita è costituita da
3 round e combattuta da 2
avversari
Ogni round dura 2 minuti
Vince la partita chi fa più
punti
21. NodeJS
“Node.js is a platform built on Chrome's JavaScript
runtime for easily building fast, scalable network
applications.
Node.js uses an event-driven, non-blocking I/O model
that makes it lightweight and efficient, perfect for data-
intensive real-time applications that run across
distributed devices.”
• http://www.slideshare.net/the_undefined/nodejs-a-quick-tour
• http://www.slideshare.net/simon/evented-io-based-web-servers-
explained-using-bunnies
• http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
23. Linkedin & NodeJS
Linkedin: some of the advantages of Node.js over Rails:
• Much better performance and lower memory overhead than
other tested options, running up to 20x faster in some
scenarios
• Programmers could leverage their JavaScript skills
• Frontend and backend mobile teams could be combined into
a single unit
• Servers were cut to 3 from 30. Enough headroom remains to
handle 10x current levels of resource utilization
http://highscalability.com/blog/2012/10/4/linkedin-moved-from-rails-to-node-27-
servers-cut-and-up-to-2.html
24. Perché NodeJS?
• Conoscevo la tecnologia
• Veloce
• Semplice da implementare
• Npm – Node Packet Manager
• Se anche non fossi riuscito a costruire
il robot, avrei potuto pubblicare il
codice: chiunque avrebbe potuto
eseguirlo sul suo browser
28. NodeJS Ruzzle Solver
• Dizionario • wordList = []
• Lettere sulla griglia • Ruzzle.letters = []
• Pulitura del dizionario • Ruzze.clearWords(wordList)
• Ricerca parole • Ruzzle.search(…)
• Ordinamento parole per
punti e per minimizzare i • sortMoves(moves)
path • sendViaBluetooth(moves)
• Invio via bluetooth
http://github.com/albertosarullo/ruzzle-mindstorm-nxc-nodejs-solver
40. Problemi da affrontare
• Scrivere un solver per Ruzzle
• Costruire un robot
• Scrivere il software per muovere il robot
• Far comunicare il robot con il computer
• Fare interagire il robot con il tablet (interazione
macchina-macchina)
• Prelevare l’immagine dal tablet
• Riconoscere le lettere
42. Schermi capacitivi
3 Strati:
– conduttore trasparente (ossido metallico)
– isolante (vetro)
– matrice di condensatori a film
Funzionamento:
• Agli angoli dello schermo viene applicata una tensione elettrica
• Quando il dito tocca lo schermo avviene una variazione di capacità
superficiale, che viene letta dalla matrice di condensatori
Samsung's Super AMOLED: 'in-cell' technology, elimina uno strato
integrandolo nel display stesso
54. Prototipo
• Scopo:
– verificare la fattibilità della costruzione di un robot
che si muovesse con precisione su 3 assi
• Strategia:
– progettazione modulare per quanto riguarda i
movimenti sugli assi x e y, per distribuire
uniformemente il peso
– asse z: procedere per tentativi
55.
56. Prototipo
• Risultato sperimentazione:
– Ok, funziona
– Riesco a muovere sui 3 assi: x, y, z
– Strane imprecisioni nelle traiettorie, che imputavo
ad un peso eccessivo o non equilibrato. Ma io
voglio la migliore precisione possibile: cerco la
causa e l’ispirazione.
57. Bisogna sempre puntare in alto: ho cercato
i video dei più precisi robot industriali
http://www.youtube.com/watch?v=SOESSCXGhFo
58. Prototipo
Il problema:
• non era nel mio software
• non era nella mia costruzione
• era nel firmware lego originale
I motori lego si fermano dopo aver raggiunto la
meta, non prima!
59.
60. Absolute Position Regulation
“NXT Improved Firmware, that controls one motor so that its
position matches the position set by the user.
At any time, even when the motor is moving, the set position can
be changed, and the control algorithm will move the motor
towards the new position.”
http://nxt-firmware.ni.fr.eu.org/changes/absolute_position_regulation/
63. Robot #1
• Scopo:
– unire tutto ciò che è stato fatto
• Strategia:
– costruzione modulare per quanto riguarda i
movimenti sugli assi x e y
– distribuzione dei pesi equilibrata
64. Robot #1
Idea: scattare una fotografia all’iPad dalla webcam del
portatile e processarla
Problema: il “dito” avrebbe avuto diventare un braccio
per non coprire il tablet
Soluzione: metafora della scavatrice
66. ..ma non una qualsiasi!
http://www.youtube.com/watch?v=jH1cR2spwNs
67. Robot #1
Problema:
costruire un robot grande
Soluzione:
se la montagna non viene a Maometto…
68. Ho aggiunto un
riferimento
all’unica
dimensione
assoluta che il
nostro cervello
possiede.
Con un
semplice omino
la mia
scavatrice è
diventata
immensa
70. Problema
Problema insormontabile: poca rigidità torsionale causa
imprecisione di circa 3 mm nelle traiettorie diagonali
Soluzione: distruggere tutto ciò che avevo costruito
Smarrimento: serve un cambio radicale di paradigma
78. Robot #2
Risultato: funziona! (errore max: circa 2mm)
E ora? Che faccio? Va comunicato
Come? Con un video su Youtube!
Idea: L’omino lego, da strumento diventa protagonista di una
storia
http://youtu.be/ukPyJPFAwlo
80. Sviluppi futuri
• Leggere i modificatori di punti (2L, 3W)
• RaspberryPi integration (via bluetooth)
• Sikuli.org environment
• Automazione totale
• Trasferire la sfida a ruzzle al mondo delle macchine
• Idee?
81. Grazie
• Codemotion Staff
• Silvana
• Open source projects
– Tesseract
– ImageMagick
– Absolute position
regulation
– Node Mindstorm
Bluetooth
82. Feedback
Qualsiasi feedback è
prezioso!
• alberto.sarullo@gmail.com
• twitter.com/albertosarullo
• fb.com/albertosarullo
• linkedin.com/in/albertosarullo
• github.com/albertosarullo
N.B. Senza feedback non c’è
miglioramento