HalfStack AZ

2020

/usr/bin/whoami ?

Luis Montes

@MONTESLU

❤️

xkcd.com/768

Google Pixel 4 XL

  • Snapdragon 855 CPU
  • 2.5 million x the RAM
  • 128 GB storage
  • Multiple browsers!
  • Progressive Web Apps!

Apple iPhone 11 Pro Max Ultra Extreme

  • Apple A13 Bionic (7 nm+) Hexacore !
  • 1.7 million x the RAM
  • 512 GB storage!
  • Mobile Safari
  • pRoGrEsSiVe WeB aPpS

why bother with PWA/offline?

Lie-Fi 📶

navigator.onLine = true

PWA to the rescue?

  • ✅Works offline
  • ✅No app stores!
  • 🤔Peer comunications?
  • 🤔File sharing?

Peer to Peer - ask


const scanner = navigator.peers.scan();

scanner.on('peer-found', async (peer) => {
	const connection = await peer.connect();
	connection.send('waddup!');
});
				

Peer to Peer - accept


navigator.peers.on('peer-request', async (peer) => {
	const connection = await peer.acceptDialog();
	connection.send('hey!');
});
					

simple right?

Web Bluetooth

  • Since Chrome 56 stable!
  • Stable on MS Edge since Wednesday.
  • 🤔 p2p ?

Web NFC

  • Partial implementation in chrome.
  • 🤔 p2p ?

Peer to Peer - over NFC


const reader = new NDEFReader();
const writer = new NDEFWriter();
						

Web USB ?

Web Serial ?!?!

LoRa...

  • ✅766 km, record
  • ✅More bandwith
  • ✅in IoT conf badges
  • 🤔From the web?

Serial relaying

  • PWA (react)
  • xterm.js
  • Node serial shim (noopkat)
  • LoRa hardware + esp32

demo time

https://term.netlify.com

Web Assembly

getUserMedia({video: true})

📷

QR Code sharing

  • PWA (react)
  • File access (FileReader.readAsDataURL(...))
  • QR generation (canvas)
  • webworker QR detection...

demo time

https://qrshare.netlify.com

The future?

HD video...

Web RTC

TCP and UDP Socket API

W3C Working Group - 23 July 2015

dat://

  • DNS
  • Multicast DNS
  • DHT

BeakerBrowser.com

with datPeers API

Thank You !

Luis Montes

@MONTESLU