SlideShare a Scribd company logo
1 of 58
Download to read offline
Let’s	Get	Physical
An	introduction	to	the	world	of	the	physical	web
@joel__lord
#midwestjs
About	Me
@joel__lord
#midwestjs
Our	Agenda	for	today…
• What	is	Bluetooth
• The	Physical	Web
• Web	Bluetooth	API
• Demos,	code	and	lots	
of	fun
• Q&A
@joel__lord
#midwestjs
What	is	Bluetooth?
@joel__lord
#midwestjs
@joel__lord
#midwestjs
@joel__lord
#midwestjs
Why	use	it?
• Available	on	modern	
devices
• Stable
• Good	Range
• Connectivity
• Auto	Pair
@joel__lord
#midwestjs
Multiple	Flavors
• Bluetooth	Basic	Rate/Enhanced	Data	Rate	
(BR/EDR)
• Bluetooth	Low	Energy	(LE)
@joel__lord
#midwestjs
The	Generic	Attributes	(GATT) define	a	hierarchical	data	structure	that	
is	exposed	to	connected	Bluetooth	LE	devices.
@joel__lord
#midwestjs
The	Generic	Attributes	
(GATT)	define	a	
hierarchical	data	
structure	that	is	
exposed	to	connected	
Bluetooth	LE	devices.
@joel__lord
#midwestjs
The	Generic	Attributes	
(GATT)	define	a	
hierarchical	data	
structure	that	is	
exposed	to	connected	
Bluetooth	LE	devices.
@joel__lord
#midwestjs
The	Generic	Attributes	
(GATT)	define	a	
hierarchical	data	
structure	that	is	
exposed	to	connected	
Bluetooth	LE	devices.
@joel__lord
#midwestjs
For	more	on	Bluetooth	specs:	https://www.bluetooth.com/specifications/gatt
@joel__lord
#midwestjs
The	Physical	
Web
The	Physical	Web is	an	
open	approach	to	
enable	quick	and	
seamless	interactions	
with	physical	objects	
and	locations.
@joel__lord
#midwestjs
The	Physical	
Web
• Everything	is	a	tap	
away
• See	what’s	useful	
around	you
• Any	object	or	place	
can	broadcast	content
@joel__lord
#midwestjs
Introducing	
Eddystone	
Beacons
@joel__lord
#midwestjs
Out	of	the	
box	solutions
@joel__lord
#midwestjs
@joel__lord
#midwestjs
Your	own	
laptop	!
@joel__lord
#midwestjs
And	a	touch	
of	Javascript
@joel__lord
#midwestjs
What	you	need
• A	URL	that	you	want	to	broadcast
• Has	to	resolve	to	HTTPS	and	public
• Has	to	be	less	than	18	characters
• A	phone	or	device	that	can	receive	nearby	notifications
@joel__lord
#midwestjs
Configure	your	device
• First,	check	that	you	have	an	
active	data	connection	as	well	as	
Bluetooth	and	Location	turned	
on.	The	notification	shade	
provides	an	easy	way	to	check	
that	these	requirements	are	
met.
@joel__lord
#midwestjs
Configure	your	device
• Swipe	down	on	the	notification	
shade	when	you	first	encounter	
a	beacon.	You	will	receive	a	
notification	alerting	you	about	
nearby	web	pages.
@joel__lord
#midwestjs
Configure	your	device
• Tap	on	the	notification	to	opt	
into	future	Nearby	notifications.	
Opting	in	will	take	you	to	a	list	of	
nearby	URLs
@joel__lord
#midwestjs
Configure	your	device
• When	you	are	near	a	beacon	in	
the	future,	you	will	see	a	
notification	informing	you	of	
nearby	URLs.
@joel__lord
#midwestjs
But	it	doesn’t	work	on	my	phone!
• Try	to	download	the	application	
”Physical	Web”	from	the	Play	
Store
@joel__lord
#midwestjs
Wait!		I	have	a	fancy	iPhone!
• Try	it	and	let	me	know:	iOS
@joel__lord
#midwestjs
Broadcast	that	URL
• You	will	need
• Compatible	Bluetooth	4.0	USB	adapter	or	built-in	BT	(Macbook Pro)
• NodeJs
• See	full	list	of	requirements
@joel__lord
#midwestjs
Broadcast	that	URL
• [SYS:~	jlord$	npm install	eddystone-beacon
@joel__lord
#midwestjs
Broadcast	that	URL
var beacon = require("eddystone-beacon");
var options = {
name: "MyBeacon"
};
var url = "https://goo.gl/SuTBBh";
beacon.advertiseUrl(url, options);
@joel__lord
#midwestjs
Broadcast	that	URL
var beacon = require("eddystone-beacon");
var options = {
name: "MyBeacon"
};
var url = "https://goo.gl/SuTBBh";
beacon.advertiseUrl(url, options);
@joel__lord
#midwestjs
Broadcast	that	URL
var beacon = require("eddystone-beacon");
var options = {
name: "MyBeacon"
};
var url = "https://goo.gl/SuTBBh";
beacon.advertiseUrl(url, options);
@joel__lord
#midwestjs
Broadcast	that	URL
var beacon = require("eddystone-beacon");
var options = {
name: "MyBeacon"
};
var url = "https://goo.gl/SuTBBh";
beacon.advertiseUrl(url, options);
@joel__lord
#midwestjs
Broadcast	that	URL
var beacon = require("eddystone-beacon");
var options = {
name: "MyBeacon"
};
var url = "https://goo.gl/SuTBBh";
beacon.advertiseUrl(url, options);
@joel__lord
#midwestjs
Tada!
You	should	see	the	notification	on	your	
phone
It’s	really	just	that	simple!
@joel__lord
#midwestjs
But	what	about	controlling	BT	devices?
@joel__lord
#midwestjs
What	about	controlling	devices?
• Available	in	Chrome	56	and	Chrome	for	Android	M
• Lets	you:
• Request	and	connect	to	nearby	Bluetooth	devices
• Read	and	write	Bluetooth	Characteristics
• Receive	GATT	Notifications
• Know	about	disconnects
@joel__lord
#midwestjs
What	about	controlling	devices?
• Still	experimental
• Full	specs	here
• Only	Google	implementing	it	so	far
• Security	is	a	big	concern
@joel__lord
#midwestjs
What	about	controlling	devices
• You	will	need	a	compatible	
browser
• Understanding	of	Promises
• A	User	gesture	event
document.querySelector("button")
.addEventListener("click", _ => {
//User event
});
@joel__lord
#midwestjs
Web	Bluetooth	API	Demo
• A	Heart	Rate	Monitor
@joel__lord
#midwestjs
Web	Bluetooth	API
• First,	we	need	to	connect	to	a	device.	
• Requires	a	mandatory	service	filter	
navigator.bluetooth.requestDevice({ filters: [
{ services: ['heart_rate'] }
]})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• First,	we	need	to	connect	to	a	device.	
• Requires	a	mandatory	service	filter	
navigator.bluetooth.requestDevice({ filters: [
{ services: ['heart_rate'] }
]})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• You	can	see	all	the	devices	but	you	will	get	an	error	later	if	you	don’t	
add	a	service	filter
navigator.bluetooth.requestDevice({acceptAllDevices: true})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• First,	we	need	to	connect	to	a	device.	
• Requires	a	mandatory	service	filter	
navigator.bluetooth.requestDevice({ filters: [
{ services: ['heart_rate'] }
]})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• First,	we	need	to	connect	to	a	device.	
• Requires	a	mandatory	service	filter	
navigator.bluetooth.requestDevice({ filters: [
{ services: ['heart_rate'] }
]})
.then(device => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• You	can	*then*	connect	to	the	device	and	get	information	about	this	
device
navigator.bluetooth.requestDevice(options)
.then(device => {
// Human-readable name of the device.
console.log(device.name);
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• Once	you	have	a	device,	you	can	access	the	GATT	server
navigator.bluetooth.requestDevice(options)
.then(device => {
// Attempts to connect to remote GATT Server.
return device.gatt.connect();
})
.then(server => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• Once	you	have	a	device,	you	can	access	the	GATT	server
navigator.bluetooth.requestDevice(options)
.then(device => {
// Attempts to connect to remote GATT Server.
return device.gatt.connect();
})
.then(server => { /* ... */ })
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• And	you	can	now	access	the	service	to	get	the	desired	characteristic
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => {
// Getting Battery Service
return server.getPrimaryService('battery_service');
})
.then(service => {
// Getting Battery Level Characteristic.
return service.getCharacteristic('battery_level');
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• And	you	can	now	access	the	service	to	get	the	desired	characteristic
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => {
// Getting Battery Service
return server.getPrimaryService('battery_service');
})
.then(service => {
// Getting Battery Level Characteristic.
return service.getCharacteristic('battery_level');
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• You	can	finally	read	the	value	of	the	characteristic
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService('battery_service'))
.then(service => service.getCharacteristic('battery_level'))
.then(characteristic => {
// Reading Battery Level
return characteristic.readValue();
})
.then(value => {
console.log('Characteristic value: ' + value);
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• You	can	finally	read	the	value	of	the	characteristic
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService('battery_service'))
.then(service => service.getCharacteristic('battery_level'))
.then(characteristic => {
// Reading Battery Level
return characteristic.readValue();
})
.then(value => {
console.log('Characteristic value: ' + value);
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• When	reading	the	value,	it	returns	a	ArrayBuffer which	you	need	to	
convert	into	an	int value
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService('battery_service'))
.then(service => service.getCharacteristic('battery_level'))
.then(characteristic => characteristic.readValue())
.then(value => {
var intVal = value.getUint8(0);
console.log('Battery percentage is ' + intVal);
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Web	Bluetooth	API
• Or	subscribe	to	the	notifications
navigator.bluetooth.requestDevice(options)
.then(device => device.gatt.connect())
.then(server => server.getPrimaryService('battery_service'))
.then(service => service.getCharacteristic('battery_level'))
.then(c => {
// Set up event listener for when characteristic value changes.
c.addEventListener('characteristicvaluechanged', console.log);
})
.catch(error => { console.log(error); });
@joel__lord
#midwestjs
Heart	Rate	during	a	talk
15	minutes	before	talk
Stage	fright
Holy	shit,	talk	started	
but	my	laptop	froze
During	the	talk,	
everything	is	under	
control
Talk	is	done,	relaxing
Presented	By
JOEL	LORD
Midwest	JS	August	2017
@joel__lord
joellord
Thank	you
Presented	By
JOEL	LORD
Midwest	JS	August	2017
@joel__lord
joellord
Questions?

More Related Content

Similar to Let's Get Physical

The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developerbalunasj
 
Meego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalMeego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalRaj Lal
 
MongoDB Mobile
MongoDB Mobile MongoDB Mobile
MongoDB Mobile MongoDB
 
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftIoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftOpen Mobile Alliance
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopRomin Irani
 
Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01nagapriyanka
 
Control Pc Via Bluetooth Enable Mobile
Control Pc Via Bluetooth Enable MobileControl Pc Via Bluetooth Enable Mobile
Control Pc Via Bluetooth Enable MobileSamiul Hoque
 
Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01ramaswamireddy challa
 
Real-Time Web Apps & .NET - What are your options?
Real-Time Web Apps & .NET - What are your options?Real-Time Web Apps & .NET - What are your options?
Real-Time Web Apps & .NET - What are your options?Phil Leggetter
 
Lecture 5 - Webservers for the Internet of Things
Lecture 5 - Webservers for the Internet of ThingsLecture 5 - Webservers for the Internet of Things
Lecture 5 - Webservers for the Internet of ThingsAlexandru Radovici
 
Controlling Robots Remotely with Azure
Controlling Robots Remotely with AzureControlling Robots Remotely with Azure
Controlling Robots Remotely with AzureLiam Gulliver
 
Cold front - bridging the web and the physical world
Cold front - bridging the web and the physical worldCold front - bridging the web and the physical world
Cold front - bridging the web and the physical worldKenneth Rohde Christiansen
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’sVisug
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction承翰 蔡
 
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData InfluxData
 
My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.Simon Guest
 

Similar to Let's Get Physical (20)

The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Meego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalMeego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLal
 
MongoDB Mobile
MongoDB Mobile MongoDB Mobile
MongoDB Mobile
 
JAM805 - Beyond the Device
JAM805 -  Beyond the DeviceJAM805 -  Beyond the Device
JAM805 - Beyond the Device
 
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftIoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 
Thadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-WorkshopThadomal IEEE-HTML5-Workshop
Thadomal IEEE-HTML5-Workshop
 
Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01
 
Control Pc Via Bluetooth Enable Mobile
Control Pc Via Bluetooth Enable MobileControl Pc Via Bluetooth Enable Mobile
Control Pc Via Bluetooth Enable Mobile
 
Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01Controlpcviabluetoothenablemobile 091028150632-phpapp01
Controlpcviabluetoothenablemobile 091028150632-phpapp01
 
Android & Beacons
Android & Beacons Android & Beacons
Android & Beacons
 
Real-Time Web Apps & .NET - What are your options?
Real-Time Web Apps & .NET - What are your options?Real-Time Web Apps & .NET - What are your options?
Real-Time Web Apps & .NET - What are your options?
 
Lecture 5 - Webservers for the Internet of Things
Lecture 5 - Webservers for the Internet of ThingsLecture 5 - Webservers for the Internet of Things
Lecture 5 - Webservers for the Internet of Things
 
Controlling Robots Remotely with Azure
Controlling Robots Remotely with AzureControlling Robots Remotely with Azure
Controlling Robots Remotely with Azure
 
Cold front - bridging the web and the physical world
Cold front - bridging the web and the physical worldCold front - bridging the web and the physical world
Cold front - bridging the web and the physical world
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
 
Web of things introduction
Web of things introductionWeb of things introduction
Web of things introduction
 
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
Creating and Using the Flux SQL Datasource | Katy Farmer | InfluxData
 
My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.My customers are using iPhone/Android, but I'm a Microsoft Guy.
My customers are using iPhone/Android, but I'm a Microsoft Guy.
 

More from Joel Lord

From Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum CryptographyFrom Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum CryptographyJoel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!Joel Lord
 
Asynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale ofAsynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale ofJoel Lord
 
Learning Machine Learning
Learning Machine LearningLearning Machine Learning
Learning Machine LearningJoel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Joel Lord
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWTJoel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWTJoel Lord
 
Asynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale ofAsynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale ofJoel Lord
 
I Don't Care About Security
I Don't Care About Security I Don't Care About Security
I Don't Care About Security Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)Joel Lord
 
Secure your SPA with Auth0
Secure your SPA with Auth0Secure your SPA with Auth0
Secure your SPA with Auth0Joel Lord
 

More from Joel Lord (20)

From Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum CryptographyFrom Ceasar Cipher To Quantum Cryptography
From Ceasar Cipher To Quantum Cryptography
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!Mot de passe oublié? Absolument!
Mot de passe oublié? Absolument!
 
Asynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale ofAsynchronicity: concurrency. A tale of
Asynchronicity: concurrency. A tale of
 
Learning Machine Learning
Learning Machine LearningLearning Machine Learning
Learning Machine Learning
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Forgot Password? Yes I Did!
Forgot Password? Yes I Did!Forgot Password? Yes I Did!
Forgot Password? Yes I Did!
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
WTH is a JWT
WTH is a JWTWTH is a JWT
WTH is a JWT
 
Asynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale ofAsynchonicity: concurrency. A tale of
Asynchonicity: concurrency. A tale of
 
I Don't Care About Security
I Don't Care About Security I Don't Care About Security
I Don't Care About Security
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)I Don't Care About Security (And Neither Should You)
I Don't Care About Security (And Neither Should You)
 
Secure your SPA with Auth0
Secure your SPA with Auth0Secure your SPA with Auth0
Secure your SPA with Auth0
 

Recently uploaded

Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls DubaiEscorts Call Girls
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...SUHANI PANDEY
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 

Recently uploaded (20)

valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 

Let's Get Physical