Links of the Presentation: Unlocking the Potential of Bits and Bytes
These are all the links of my presentation at Devoxx Belgium, Wednesday 12:00-12:50, Room 7.
Unlocking the Potential of Bits and Bytes: Reducing Data Footprint for Cost and Eco-Efficiency
In the age of unlimited storage space, we forget to consider the financial and ecological costs. Transmitting and storing data in XML, JSON, or (if you want to hurt people) YAML makes data human-readable, which is great for debugging and testing but is a very inefficient, heavy, and expensive way of handling data. We can learn from projects with electronic components. The protocols used in the communication with displays, sensors, and LED strips are all based on the magic ones and zeros.
Many years ago, I switched jobs from web development to a company building electronic devices for the rail industry. Suddenly I needed to understand the power of the smallest data unit we can use in software: bits. Yes, pure ones and zeros! We all know that #FF0000 will make the text red on a web page. But I never realized that the hex value #CB would mean that a train has two toilets, of which the first one is broken, and the second is wheel-chair friendly and occupied. All that info is presented with “1100 1011” in one byte!
In this presentation, we will dive deep into the bits of our computer and experiment together. Let’s find out why our alarm clock wakes us up at 06:15 with #007D066D and reveal the meaning behind #3C42A581A599423C, to put a smiley face on a LED matrix. With Spring, Vaadin, and Pi4J on a Raspberry Pi - and some help from the “conference-wifi-gods” - we’ll discover the magic behind bits and bytes and control electronic components with HEX values.
About Me, Foojay, and Azul
- Mastodon: foojay.social/@frankdelporte
- Personal blog
- Foojay author
- Foojay podcasts
- Working at Azul
- Azul Documentation
Books
Video
Source Code
- JavaFX Bits Calculator
- JavaFX LED Number Display Controller
- JDoodle: SevenSegmentDemo with record and helper methods
- JDoodle: ZIP data example
- ProtoBuffer example
- Install protobuffer on macOS and convert the proto file to Java:
$ brew install protobuf $ protoc --java_out=code/ code/SevenSegment.proto
- Execute with JBang:
jbang ProtoBufferExample.java
Electronics Demo
- Pi4J Website
- Pi4J CrowPi documentation
- Elecrow CrowPi
- start.vaadin.com
- Source code Pi4J / Vaadin / Spring demo