Elm Town 55 – From algorithms & animation to building a decentralized finance app
Dwayne Crooks stops in to share his appreciation of algorithms, experience learning Elm, challenges building Elm 2048, and how he uses Elm at work to build things like the decentralized finance app, Qoda.
Thanks to our sponsor, Logistically. Email: elmtown@logisticallyinc.com.
Music by Jesse Moore.
Recording date: 2023.03.07
Guest
- Dwayne Crooks (https://dev.to/dwayne)
Show notes
[00:00:56] Some of Dwayne's contributions to Elm
- Maintains the BuiltWithElm website
- Published dwayne/elm-natural
- Built 2048 game clone
[00:01:51] How Dwayne became interested in programming
[00:05:37] Discovering Elm
[00:10:04] Previous experience with functional programming
- Structure and Interpretation of Computer Programs (SICP) by Harold Abelson and Gerald Jay Sussman with Julie Sussman
[00:13:49] Diving deeper into Elm
- dwayne/elm-random-quote-machine
- dwayne/elm-markdown-previewer
- dwayne/elm-drum-machine
- dwayne/elm-calculator
- dwayne/elm-rater
- dwayne/elm-tictactoe
[00:16:46] elm-2048
[00:19:31] Elm Radio rocks!
[00:19:46] Describing animation challenge
- Discourse post
- Elm 3D Pool on itch.io
- "Elm 3D Pool Game Collaboration" blog post
[00:29:56] Experiments lead to building a career using Elm
[00:35:31] Debugging a custom data interchange parser
[00:46:48] Building Qoda, a decentralized finance app
[00:57:13] Jared "just" starts generalizing on how folks might do JavaScript interop
Jared makes generalizations here that work well for many cases but do not apply for every situation. For example, interop with UI tools such as a map would make more sense with custom elements rather than ports.
Check out Dwayne's post on Discourse explaining how ports are used in Qoda.
If you're stuck, please ask the community on Elm Slack or Discourse.
[00:59:10] elm-natural
- dwayne/elm-natural
- Coury Ditch's elm-bigint
[01:02:12] Cal Newport and the way Evan works
Disclaimer: Comments about how Evan works are based on our outside observations.
[01:04:50] Picks
Dwayne's picks
- Structure and Interpretation of Computer Programs (SICP) by Harold Abelson and Gerald Jay Sussman with Julie Sussman
- How to Design Programs: An Introduction to Programming and Computing by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, & Shriram Krishnamurthi
- Cal Newport's books
- Essentials of Programming Languages by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
Jared's pick
- "The Importance of Ports" by Murphy Randle