Hyperapp, Flipdots & Pixelkunst

A presentation at neuland.conf in October 2018 in Bremen, Germany by Michael Geers

Slide 1

Slide 1

Hyperapp Flipdots & Pixelkunst Michael Geers | @naltatis neuland.conf 2018

Slide 2

Slide 2

hyperapp.js Functional DOM Diffing Komponenten State Management 1kB JavaScript Elm, React/Redux The Important Parts Vergleich: ~30kB Elm, ~40kB React+Redux, ~60kB Vue, ~110kB Angular

Slide 3

Slide 3

counter.js hyperapp in action Zentraler State Interaktionen Template Initialisierung

Slide 4

Slide 4

counter.jsx hyperapp in action Zentraler State Interaktionen Template Initialisierung

Slide 5

Slide 5

And Now for Something Completely Different

Slide 6

Slide 6

Homeoffice

Slide 7

Slide 7

Home

Slide 8

Slide 8

Slide 9

Slide 9

@AndreSchroeter +

Slide 10

Slide 10

Keine Glastür Headset für Musik !

Slide 11

Slide 11

On Air LED

Slide 12

Slide 12

Mate Kisten Display 32C3 Hamburg

Slide 13

Slide 13

Mechanische Displays

Slide 14

Slide 14

Split-Flap Display

Slide 15

Slide 15

Slide 16

Slide 16

Slide 17

Slide 17

https://www.magazin.com/wanduhr-klappzahlenuhr-brick-p1463864/

Slide 18

Slide 18

Flip-Dot Display

Slide 19

Slide 19

Slide 20

Slide 20

https://breakfastny.com/flip-disc

Slide 21

Slide 21

7x7 Dev Board - Serielle Steuerung RS485 Arduino/RPi yay

24V Spannung

Erweiterbar über Steckverbindung AlfaZeta

Flip-Dot Boards XY5

https://flipdots.com/

Slide 22

Slide 22

Serielle Ansteuerung node.js

Slide 23

Slide 23

Payload berechnen Jede Spalte ist ein Byte Basis 2 parseInt("0100000", 2) =>" 32 // 0x20 parseInt("0011111", 2) =>" 31 // 0x1f 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0

Slide 24

Slide 24

Rückseite Konfiguration (Adresse/Mode) RS485 to USB Adapter Strom Steuersignal Raspberry Pi Zero W 24 V Netzteil

Slide 25

Slide 25

On Air Flip-Dot Display

Slide 26

Slide 26

Inhalt? Platz für zwei Buchstaben Lauftext? Updates sind laut! "

Slide 27

Slide 27

Icons Mikro an Zufälliges Monster Kamera an Luft ist rein

Slide 28

Slide 28

Zuverlässigkeit !important

Slide 29

Slide 29

Steuerung Version 1: Button

Slide 30

Slide 30

Steuerung Version 1.5: Button mit LED

Slide 31

Slide 31

Steuerung Version 2: Macbook Micro- und Kamera-Aktivität (automatisch) https://obdev.at/products/microsnitch/

Slide 32

Slide 32

Steuerung Flip-Dot Raspberry Pi Macbook Micro Snitch PUT /status/audio Log-File PUT /status/video On-Air Daemon PUT /status/idle Webservice Local Wifi

Slide 33

Slide 33

49 Pixel

Slide 34

Slide 34

Pixel Editor Simple Webapp Etwas CSS Magie hyperapp! Live Vorschau flipflip*

Slide 35

Slide 35

Kids # Pixel Editor

Slide 36

Slide 36

JavaScript + Types Tooling Support (VSCode, IntelliJ, …)

Slide 37

Slide 37

JavaScript + Types Tooling Support (VSCode, IntelliJ, …)

Slide 38

Slide 38

JavaScript + Types Tooling Support (VSCode, IntelliJ, …)

Slide 39

Slide 39

Debugging Redux DevTools kompatibel https://github.com/andyrj/hyperapp-redux-devtools

Slide 40

Slide 40

Module Bundler like Webpack but Batteries Included Zero Config Schnell! https://parceljs.org/

Slide 41

Slide 41

Wenig Pixel - Viele Möglichkeiten Male eine Rakete!

Slide 42

Slide 42

Try it yourself! https://7x7.ninja/ Responsive Progressive Webapp Lighthouse Score 100 :) 11kb Script https://github.com/naltatis/7x7ninja Und nein, das ist nicht mit mein em Display gekop pelt :)

Slide 43

Slide 43

Animations

Slide 44

Slide 44

Navigation State

Slide 45

Slide 45

Possible Takeaways

Slide 46

Slide 46

hyperapp rocks hyperapp + TypeScript ~= Elm https://github.com/JorgeBucaran/hyperapp

Slide 47

Slide 47

Keine Angst vor Hardware

Slide 48

Slide 48

Simple is Beautiful

Slide 49

Slide 49

Danke! Michael Geers | @naltatis neuland.conf 2018

Slide 50

Slide 50

Credits John Cleese Desk https://ichef.bbci.co.uk/images/ic/1200x675/p01gk35d.jpg Icons by Freepik https://www.flaticon.com Split-Flap Animation+ https://en.wikipedia.org/wiki/Split-flap_display Flip-Disk Schema https://breakfastny.com/flip-disc-system ŠJů (cs:ŠJů) - Own work https://commons.wikimedia.org/w/index.php?curid=10771385 Code: Carbon https://carbon.now.sh/ Fonts: Dank Mono & BPdots https://dank.sh/ https://www.fontsquirrel.com/fonts/BPdots