axelson

axelson

Scenic Core Team

ElixirConf 2019: Photogenic: Building a Photo Booth with Beginners Using Nerves, LiveView and Scenic - Bruce Tate

by @redrapids

Designing and Consume APIs Like a Pro!

Elixir has three scorching hot libraries right now, Phoenix LiveView, Nerves and Scenic. It’s no accident that usage of these vastly different problem sets expose APIs with plenty in common. They are powerful for experts but friendly to beginners. In this talk, we’ll look at these frameworks through the eyes of new Elixir users, even some new programmers.

Our photo booth project, introduced in an Elixir mentoring group, used all of them to build a three-fold project, to talk to hardware with a camera and a display, take photos and present them to a user, and how to send those photos and screen them before they’re made publicly available. We’ll look at how we broke down each problem and the designs that each of those pieces has in common. The answers may surprise you.

Beginners will love seeing how to apply common problems in functional programming, primarily using reducers and functions to model state. Experts will love seeing how to expose APIs, shielding away the complexity from new users but making its full power available for experts.

View all threads tagged with liveview
View all elixirconf2019 talks

Where Next?

Popular in Talks Top

axelson
by @takasehideki Can you imagine that your Elixir code will be executed as a hardware circuit on an FPGA? The FPGA (Field-Programmable...
New
CodeSync
Code Sync: Keynote: Gang of None? Design Patterns in Elixir - José Valim | ElixirConf EU 2024 Comments welcome! View the <span class="ha...
New
axelson
ElixirConf 2017 - Keep an Eye on the Sky with Nerves and Phoenix - @electricshaman As part of the next gener...
New
axelson
ElixirConf 2017 - The Power of Zero - Andrew Forward Automation is hard, but the benefits can be phenomenal....
New
axelson
ElixirConf 2018 – Day 2 Opening Keynote – Justin Schneck (@mobileoverlord) All talks thread:
New
AstonJ
Just starting to go up - did you attend? Have any faves? Here are the keynotes:
New
axelson
by @zacky1972 Finally, we’ve succeeded in the implementation of Hastega!!! (Maybe until ElixirConf US 2019 :slight_smile: Hastega (Hyp...
New
axelson
ElixirConf US 2018 – Simple is Beautiful: Building an SLA Monitoring Tool Using Elixir/OTP at PagerDuty – Aish Dahal ...
New
axelson
ElixirConf 2017 - Closing Keynote - @chrismccord All talks are available in the Elixir Conf 2017 Talks List o...
New
axelson
ElixirConf US 2018 – Docker and OTP: Friends or Foes? – Daniel Azuma (@dazuma) Docker is the hot deployment...
New

Other popular topics Top

axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 48475 226
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID&lt;0.412.0&gt; terminating ** (Postgrex.Error) FATAL...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
Qqwy
Update: How to use the Blogs &amp; Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 127536 1222
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54250 245
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement