Skip to content

Commit

Permalink
deploy: 1a2773f
Browse files Browse the repository at this point in the history
  • Loading branch information
danivovich committed Oct 24, 2024
1 parent 7fc49be commit 5672c87
Show file tree
Hide file tree
Showing 4 changed files with 442 additions and 6 deletions.
165 changes: 164 additions & 1 deletion podcast/elixir-wizards/rss/index.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<generator>SmartLogic Podcasts</generator>
<title>Elixir Wizards</title>
<link>https://smartlogic.io/podcast/elixir-wizards</link>
<pubDate>Thu, 17 Oct 2024 10:00:04 -0000</pubDate>
<pubDate>Thu, 24 Oct 2024 10:00:04 -0000</pubDate>
<description>Elixir Wizards is an interview-style podcast for anyone interested in functional programming and the Elixir Programming Language. Hosted by SmartLogic engineers and Elixirists Owen Bickford, Dan Ivovich, and Sundi Myint, this show features in-depth discussions with some of the brightest minds in the industry, discussing training and documentation in Phoenix LiveView, the evolution of programming languages, Erlang VM, and more.
In the current season, we&apos;re branching out from Elixir to compare notes with thought leaders and software engineers from programming languages like JavaScript, Ruby on Rails, Go, Scala, Java, and more. Each episode will take a deep dive into a topic from Machine Learning and AI, to ECS and game development, to education and community.
Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)
Expand Down Expand Up @@ -108,6 +108,169 @@ Learn more about how SmartLogic uses Phoenix and Elixir. (https://smr.tl/2Hyslu8
]]></itunes:summary>
</item>

<item>
<title>Creating VintageCell: Nerves, PCBs, and GenStateMachine with Bryan Green</title>
<link>https://smartlogic.io/podcast/elixir-wizards/s13-e02-vintagecell-nerves-bryan-green</link>
<guid isPermaLink="false">51406e56-b785-416b-a0f9-71bcfd4154a6</guid>
<pubDate>Thu, 24 Oct 2024 06:00:00 -0400</pubDate>
<author>SmartLogic LLC</author>
<enclosure url="https://aphid.fireside.fm/d/1437767933/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/51406e56-b785-416b-a0f9-71bcfd4154a6.mp3" length="42848010" type="audio/mpeg"/>
<itunes:episodeType>full</itunes:episodeType>
<itunes:season>13</itunes:season>
<itunes:author>SmartLogic LLC</itunes:author>
<itunes:subtitle>Bryan Green shares how he transformed a vintage 1930s rotary phone into a fully functional cell phone using Elixir, Nerves, GenStateMachine, and a mix of hardware components.</itunes:subtitle>
<itunes:duration>28:58</itunes:duration>
<itunes:explicit>no</itunes:explicit>
<itunes:image href="https://assets.fireside.fm/file/fireside-images-2024/podcasts/images/0/03a50f66-dc5e-4da4-ab6e-31895b6d4c9e/episodes/5/51406e56-b785-416b-a0f9-71bcfd4154a6/cover.jpg" />
<description>Today on Elixir Wizards, Bryan Green shares how he transformed a vintage 1930s rotary phone into a fully functional cell phone using Elixir, Nerves, and a mix of hardware components.
Bryan shares the highs and lows of his project, from decoding rotary dial clicks to troubleshooting hardware issues with LED outputs. He explains why Nerves was the perfect fit for this project, offering SSH access, over-the-air updates, and remote debugging. You’ll also hear how Elixir’s concurrency model helped him manage hardware inputs and outputs efficiently using GenStateMachine and Genservers.
Elixir and Nerves really shine when modeling real-world systems. Bryan dives into how he used a finite state machine to track the phone’s states and handled inputs from the rotary dial and hook switch via GPIO.
For hardware enthusiasts, Bryan’s advice is to embrace this “golden age” of DIY electronics. Whether you&apos;re experienced with embedded systems or just curious on where to start, Bryan&apos;s VintageCell can inspire you to tinker with a hardware engineering project.
Key topics discussed in this episode:
Advantages of functional programming and immutability in Elixir
Building hardware projects using Adafruit components
Why Nerves was the best choice for the VintageCell project
Interpreting rotary dial clicks using GPIO and circuits.gpio
Troubleshooting hardware issues with LED diagnostics
Challenges in optimizing wiring and PCB design
Benefits of Nerves: SSH access, OTA updates, and remote debugging
Modeling real-world systems with Elixir and Nerves
Implementing a finite state machine with GenStateMachine
Managing input with Genservers for rotary dial and hook switch
Leveraging community resources like Discord, Elixir Slack, and forums
Practical advice for keeping hardware projects on track
Potential applications from SMS servers to home automation
Links mentioned:
Vintage Cellphone: Bridging the Past and Future with Elixir (https://www.youtube.com/watch?v=U4hetzVpjmo)
Seven Languages in Seven Weeks https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/
Seven More Languages https://pragprog.com/titles/7lang/seven-more-languages-in-seven-weeks/
Node.js https://github.com/nodejs
https://nerves-project.org/
https://www.arduino.cc/
Adafruit Circuit Playground https://www.adafruit.com/category/965
Adafruit 3D Printed Star Trek Communicator https://learn.adafruit.com/3d-printed-star-trek-communicator
Adafruit FONA 3G Cellular + GPS Breakout https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout/overview
https://github.com/elixir-circuits/circuitsgpio
Nerves SSH https://hex.pm/packages/nervesssh
OTA (over-the-air) Updates with NervesHub https://www.nerves-hub.org/
https://github.com/kicad
Waveshare 4G Hat for Raspberry Pi https://www.waveshare.com/sim7600e-h-4g-hat.htm
https://hexdocs.pm/genstatemachine/GenStateMachine.html
https://hexdocs.pm/elixir/GenServer.html
https://www.sparkfun.com/
https://www.digikey.com/
USB-C Gadget Mode with Nerves https://github.com/nerves-project/nervessystemrpi4/issues/18
https://livebook.dev/
https://codestorm.me/
https://github.com/codestorm1/vintage_cell/ Special Guest: Bryan Green.
</description>
<itunes:keywords>elixir, nerves, elixir programming language, hardware engineering, software engineering, circuit playground, adafruit, raspberry pi, genservers, genstatemachine, arduino, open source, electronics, electronic engineering, microcontroller, GPIO, general purpose input output, Embedded systems, Functional programming, IoT, Internet of Things, Firmware development, Prototyping, Elixirlang, Concurrency, Real-time systems, Maker community, PCB design, Digital signal processing (DSP), Peripheral interface, Serial communication, UART, Universal Asynchronous Receiver-Transmitter</itunes:keywords>
<content:encoded><![CDATA[
<p>Today on Elixir Wizards, Bryan Green shares how he transformed a vintage 1930s rotary phone into a fully functional cell phone using Elixir, Nerves, and a mix of hardware components.</p>

<p>Bryan shares the highs and lows of his project, from decoding rotary dial clicks to troubleshooting hardware issues with LED outputs. He explains why Nerves was the perfect fit for this project, offering SSH access, over-the-air updates, and remote debugging. You’ll also hear how Elixir’s concurrency model helped him manage hardware inputs and outputs efficiently using GenStateMachine and Genservers.</p>

<p>Elixir and Nerves really shine when modeling real-world systems. Bryan dives into how he used a finite state machine to track the phone’s states and handled inputs from the rotary dial and hook switch via GPIO.</p>

<p>For hardware enthusiasts, Bryan’s advice is to embrace this “golden age” of DIY electronics. Whether you&#39;re experienced with embedded systems or just curious on where to start, Bryan&#39;s VintageCell can inspire you to tinker with a hardware engineering project.</p>

<h3>Key topics discussed in this episode:</h3>

<ul>
<li>Advantages of functional programming and immutability in Elixir</li>
<li>Building hardware projects using Adafruit components</li>
<li>Why Nerves was the best choice for the VintageCell project</li>
<li>Interpreting rotary dial clicks using GPIO and circuits.gpio</li>
<li>Troubleshooting hardware issues with LED diagnostics</li>
<li>Challenges in optimizing wiring and PCB design</li>
<li>Benefits of Nerves: SSH access, OTA updates, and remote debugging</li>
<li>Modeling real-world systems with Elixir and Nerves</li>
<li>Implementing a finite state machine with GenStateMachine</li>
<li>Managing input with Genservers for rotary dial and hook switch</li>
<li>Leveraging community resources like Discord, Elixir Slack, and forums</li>
<li>Practical advice for keeping hardware projects on track</li>
<li>Potential applications from SMS servers to home automation</li>
</ul>

<h3>Links mentioned:</h3>

<p><a href="https://www.youtube.com/watch?v=U4hetzVpjmo" rel="nofollow">Vintage Cellphone: Bridging the Past and Future with Elixir</a><br>
Seven Languages in Seven Weeks <a href="https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/" rel="nofollow">https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/</a> <br>
Seven More Languages <a href="https://pragprog.com/titles/7lang/seven-more-languages-in-seven-weeks/" rel="nofollow">https://pragprog.com/titles/7lang/seven-more-languages-in-seven-weeks/</a> <br>
Node.js <a href="https://github.com/nodejs" rel="nofollow">https://github.com/nodejs</a> <br>
<a href="https://nerves-project.org/" rel="nofollow">https://nerves-project.org/</a> <br>
<a href="https://www.arduino.cc/" rel="nofollow">https://www.arduino.cc/</a> <br>
Adafruit Circuit Playground <a href="https://www.adafruit.com/category/965" rel="nofollow">https://www.adafruit.com/category/965</a> <br>
Adafruit 3D Printed Star Trek Communicator <a href="https://learn.adafruit.com/3d-printed-star-trek-communicator" rel="nofollow">https://learn.adafruit.com/3d-printed-star-trek-communicator</a> <br>
Adafruit FONA 3G Cellular + GPS Breakout <a href="https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout/overview" rel="nofollow">https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout/overview</a> <br>
<a href="https://github.com/elixir-circuits/circuits_gpio" rel="nofollow">https://github.com/elixir-circuits/circuits_gpio</a> <br>
Nerves SSH <a href="https://hex.pm/packages/nerves_ssh" rel="nofollow">https://hex.pm/packages/nerves_ssh</a> <br>
OTA (over-the-air) Updates with NervesHub <a href="https://www.nerves-hub.org/" rel="nofollow">https://www.nerves-hub.org/</a> <br>
<a href="https://github.com/kicad" rel="nofollow">https://github.com/kicad</a> <br>
Waveshare 4G Hat for Raspberry Pi <a href="https://www.waveshare.com/sim7600e-h-4g-hat.htm" rel="nofollow">https://www.waveshare.com/sim7600e-h-4g-hat.htm</a> <br>
<a href="https://hexdocs.pm/gen_state_machine/GenStateMachine.html" rel="nofollow">https://hexdocs.pm/gen_state_machine/GenStateMachine.html</a> <br>
<a href="https://hexdocs.pm/elixir/GenServer.html" rel="nofollow">https://hexdocs.pm/elixir/GenServer.html</a> <br>
<a href="https://www.sparkfun.com/" rel="nofollow">https://www.sparkfun.com/</a> <br>
<a href="https://www.digikey.com/" rel="nofollow">https://www.digikey.com/</a> <br>
USB-C Gadget Mode with Nerves <a href="https://github.com/nerves-project/nerves_system_rpi4/issues/18" rel="nofollow">https://github.com/nerves-project/nerves_system_rpi4/issues/18</a><br>
<a href="https://livebook.dev/" rel="nofollow">https://livebook.dev/</a> <br>
<a href="https://codestorm.me/" rel="nofollow">https://codestorm.me/</a> <br>
<a href="https://github.com/codestorm1/vintage_cell/" rel="nofollow">https://github.com/codestorm1/vintage_cell/</a> </p><p>Special Guest: Bryan Green.</p>
]]></content:encoded>
<itunes:summary><![CDATA[
<p>Today on Elixir Wizards, Bryan Green shares how he transformed a vintage 1930s rotary phone into a fully functional cell phone using Elixir, Nerves, and a mix of hardware components.</p>

<p>Bryan shares the highs and lows of his project, from decoding rotary dial clicks to troubleshooting hardware issues with LED outputs. He explains why Nerves was the perfect fit for this project, offering SSH access, over-the-air updates, and remote debugging. You’ll also hear how Elixir’s concurrency model helped him manage hardware inputs and outputs efficiently using GenStateMachine and Genservers.</p>

<p>Elixir and Nerves really shine when modeling real-world systems. Bryan dives into how he used a finite state machine to track the phone’s states and handled inputs from the rotary dial and hook switch via GPIO.</p>

<p>For hardware enthusiasts, Bryan’s advice is to embrace this “golden age” of DIY electronics. Whether you&#39;re experienced with embedded systems or just curious on where to start, Bryan&#39;s VintageCell can inspire you to tinker with a hardware engineering project.</p>

<h3>Key topics discussed in this episode:</h3>

<ul>
<li>Advantages of functional programming and immutability in Elixir</li>
<li>Building hardware projects using Adafruit components</li>
<li>Why Nerves was the best choice for the VintageCell project</li>
<li>Interpreting rotary dial clicks using GPIO and circuits.gpio</li>
<li>Troubleshooting hardware issues with LED diagnostics</li>
<li>Challenges in optimizing wiring and PCB design</li>
<li>Benefits of Nerves: SSH access, OTA updates, and remote debugging</li>
<li>Modeling real-world systems with Elixir and Nerves</li>
<li>Implementing a finite state machine with GenStateMachine</li>
<li>Managing input with Genservers for rotary dial and hook switch</li>
<li>Leveraging community resources like Discord, Elixir Slack, and forums</li>
<li>Practical advice for keeping hardware projects on track</li>
<li>Potential applications from SMS servers to home automation</li>
</ul>

<h3>Links mentioned:</h3>

<p><a href="https://www.youtube.com/watch?v=U4hetzVpjmo" rel="nofollow">Vintage Cellphone: Bridging the Past and Future with Elixir</a><br>
Seven Languages in Seven Weeks <a href="https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/" rel="nofollow">https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/</a> <br>
Seven More Languages <a href="https://pragprog.com/titles/7lang/seven-more-languages-in-seven-weeks/" rel="nofollow">https://pragprog.com/titles/7lang/seven-more-languages-in-seven-weeks/</a> <br>
Node.js <a href="https://github.com/nodejs" rel="nofollow">https://github.com/nodejs</a> <br>
<a href="https://nerves-project.org/" rel="nofollow">https://nerves-project.org/</a> <br>
<a href="https://www.arduino.cc/" rel="nofollow">https://www.arduino.cc/</a> <br>
Adafruit Circuit Playground <a href="https://www.adafruit.com/category/965" rel="nofollow">https://www.adafruit.com/category/965</a> <br>
Adafruit 3D Printed Star Trek Communicator <a href="https://learn.adafruit.com/3d-printed-star-trek-communicator" rel="nofollow">https://learn.adafruit.com/3d-printed-star-trek-communicator</a> <br>
Adafruit FONA 3G Cellular + GPS Breakout <a href="https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout/overview" rel="nofollow">https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout/overview</a> <br>
<a href="https://github.com/elixir-circuits/circuits_gpio" rel="nofollow">https://github.com/elixir-circuits/circuits_gpio</a> <br>
Nerves SSH <a href="https://hex.pm/packages/nerves_ssh" rel="nofollow">https://hex.pm/packages/nerves_ssh</a> <br>
OTA (over-the-air) Updates with NervesHub <a href="https://www.nerves-hub.org/" rel="nofollow">https://www.nerves-hub.org/</a> <br>
<a href="https://github.com/kicad" rel="nofollow">https://github.com/kicad</a> <br>
Waveshare 4G Hat for Raspberry Pi <a href="https://www.waveshare.com/sim7600e-h-4g-hat.htm" rel="nofollow">https://www.waveshare.com/sim7600e-h-4g-hat.htm</a> <br>
<a href="https://hexdocs.pm/gen_state_machine/GenStateMachine.html" rel="nofollow">https://hexdocs.pm/gen_state_machine/GenStateMachine.html</a> <br>
<a href="https://hexdocs.pm/elixir/GenServer.html" rel="nofollow">https://hexdocs.pm/elixir/GenServer.html</a> <br>
<a href="https://www.sparkfun.com/" rel="nofollow">https://www.sparkfun.com/</a> <br>
<a href="https://www.digikey.com/" rel="nofollow">https://www.digikey.com/</a> <br>
USB-C Gadget Mode with Nerves <a href="https://github.com/nerves-project/nerves_system_rpi4/issues/18" rel="nofollow">https://github.com/nerves-project/nerves_system_rpi4/issues/18</a><br>
<a href="https://livebook.dev/" rel="nofollow">https://livebook.dev/</a> <br>
<a href="https://codestorm.me/" rel="nofollow">https://codestorm.me/</a> <br>
<a href="https://github.com/codestorm1/vintage_cell/" rel="nofollow">https://github.com/codestorm1/vintage_cell/</a> </p><p>Special Guest: Bryan Green.</p>
]]></itunes:summary>
</item>

<item>
<title>Creating the Igniter Code Generation Framework with Zach Daniel</title>
<link>https://smartlogic.io/podcast/elixir-wizards/s13-e01-igniter-code-generation-zach-daniel</link>
Expand Down
Loading

0 comments on commit 5672c87

Please sign in to comment.