POPULARITY
Welcome to the Season 7 finale! Today, we are joined by Todd Resudek, Staff Engineer at Jackpocket, to reflect on the past season and speak about the impact of Elixir, as well as a variety of other topics almost entirely unrelated to programming! Todd is a reformed graphic designer that got his start in web development 15 years ago. He has made a career in front-end development, PHP, Rails, and Elixir. He is also a member of the Hex core team and, in his spare time, he tinkers with hardware projects. In today's episode of Elixir Wizards, you'll learn more about the 2022 EMPEX Elixir Mountain event that Todd is co-organizing, the formula for anticipating how many people will turn up at your event, and what trains have to do with the history of timezones. We also touch on Todd's hopes for the future of Elixir, how Elixir has impacted him, both personally and professionally, and why he recommends learning Elixir as a backup language, plus so much more! Tune in today for a fun discussion with Todd Resudek! ** Key Points From This Episode:** The hilarious and sometimes tragic mispronunciation of our names. Learn more about the 2022 EMPEX Elixir Mountain event that Todd is co-organizing. Todd shares a bit about his background and his allegiance to Wisconsin football. We discuss the formula for how many people to expect at your meetup (or wedding). Some interesting history on timezones and how they relate to trains. Dune memes, roller skating, a qualifier for couple skates, and more. Todd shares his favorite Elixir Wizards episode from Season 7: Brooklyn Zelenka. How Todd learned Elixir when he first started working at Weedmaps. Why he suggests learning Elixir as a ‘backup language' rather than a primary one. His biggest hope for the future of Elixir: an even more diverse, welcoming community. How a functional programming language like Elixir has impacted the way Todd works. The personal impact the Elixir community has had for Todd by enabling new connections. Find out why Alex's dog, Bean, loved the test kitchen at their previous workplace. Eric and Alex share how the impact of Elixir has changed for them throughout this season. What all our children, human and animal, had for breakfast. Links Mentioned in Today's Episode: Todd Resudek on LinkedIn — https://www.linkedin.com/in/toddresudek/ Todd Resudek on Twitter — https://twitter.com/sprsmpl Todd Resudek on GitHub — https://github.com/supersimple Todd Resudek — https://supersimple.org/ Jackpocket — https://jackpocket.com/ EMPEX Conference — https://www.empex.co/ EMPEX MTN 2022 — https://www.empex.co/mtn Alex's Favorite Dune Meme — https://i.kym-cdn.com/photos/images/facebook/002/234/162/d96 ‘Brooklyn Zelenka and The Exciting World of Edge Computing' — https://smartlogic.io/podcast/elixir-wizards/s7e9-zelenka/ Toucan — https://www.toucan.events Elixir Wizards |> Conference — https://smartlogic.io/about/community/elixir-wizards-conference/ SmartLogic — https://smartlogic.io/ Audience Survey -- https://smr.tl/survey Special Guest: Todd Resudek.
In the first episode of the Functional Futures podcast, our guest is Brooklyn Zelenka, the co-founder & CTO of FISSION, an applied research company developing local-first and user-controlled applications. Brooklyn is also the author of Witchcraft, a library for writing Haskell “fan-fiction” in Elixir. In the episode, we talk about her path towards becoming a developer, functional programming in general, and Witchcraft. We also discuss the good and bad parts of Web3. FP merch that doesn't suck: https://shop.serokell.io/ Follow on social media: https://twitter.com/serokell https://twitter.com/expede https://twitter.com/FISSIONcodes Learn more about FISSION: https://fission.codes/ https://fission.codes/discord Learn more about us: https://serokell.io/ Contact us: academy@serokell.io
In this episode we speak to Brooklyn Zelenka, CTO at Fission, a decentralized app framework for the future of web apps at the edge. We discuss the relevance of blockchain to web3 and decentralized web apps, why developers should avoid managing backend servers, the challenges of doing authentication and identity with local clients, and why web browser APIs are the place to build, not the native operating system. About Brooklyn ZelenkaBrooklyn is the Co-Founder and CTO at Fission, where her team is building the next generation of web dev tools for the future of computing on the edge - levelling the playing field for teams of all sizes.She founded the Vancouver functional programming meetup, and is the author of several Elixir libraries including Witchcraft & Exceptional. She was previously an Ethereum Core Developer, and continues to push the broader web3 space forward with standards like UCAN auth and the Webnative File System.Things mentioned:Twitter BlueskyIndexedDBElectronGoogle BigQuery StarlinkCloud BigTableApache HadoopAmazon S3Location transparencyDecentralized Identity FoundationRestful APIElixirElmHaskellGoWeb AssemblyRustNixOSesbuildGNU EmacsVim clutchTailscaleElixirConfDiscordLet us know what you think on Twitter:https://twitter.com/consoledotdevhttps://twitter.com/davidmyttonhttps://twitter.com/expedeOr by email: hello@console.devAbout ConsoleConsole is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don't have to. Sign up for free at: https://console.dev Recorded: 2021-10-26.
We are very excited to welcome Brooklyn Zelenka back to the podcast to talk about her work at Fission and the ever-expanding frontier of edge computing! Brooklyn is a co-founder and CTO at Fission and she gives us some insight into the focus of the company's applied research. We hear from our guest about the projects she has been most excited about recently and she even talks about her newfound passion for fermentation! She does a great job of explaining why edge computing is potentially so revolutionary and some of the hurdles that are yet to be overcome on the way to reaching this potential. We discuss security and trust, tech equity, broad adoption, and much more before getting into some more Elixir-focused questions. Our guest shares how Elixir and functional programming have inspired her in different ways, as well as her perspective on some of the weaknesses of Elixir. At the end of our chat, Brooklyn gives some great resource recommendations for anyone wanting to learn more about edge computing, so make sure to stay tuned for that! Key Points From This Episode: What Brooklyn has been keeping busy with recently. A little about Fission and what their research focuses on. Tech and societal trends through the pandemic and Brooklyn's new interest in fermentation. Brooklyn unpacks the main mission of edge computing and some of the biggest challenges. Decisions around what is localized and what is stored remotely in edge computing. Addressing the issue of trust and safeguarding against data breaches. The influence of functional programming in Brooklyn's work on edge applications. Some information on Brooklyn's talk at ElixirConf this year titled 'The Jump to Hyperspace.' Our guest explains the concept of antientropy and its associated techniques. Thoughts on the problem of tech equity and how this might be tackled. Gaining popular trust for new technologies and their inevitable faults. Brooklyn's feelings about Haskell, and the inspiration she takes from it into her work with Elixir. The impact that Elixir has on Brooklyn's work in a broader sense. The route that Brooklyn took into the functional programming world. Brooklyn weighs in on the questions of Elixir's downsides. Resources recommendations for anyone looking to get more acquainted with work in edge computing. Where to find and connect with Brooklyn online! Links Mentioned in Today's Episode: SmartLogic — https://smartlogic.io/ Brooklyn Zelenka — https://twitter.com/expede?lang=en Fission — https://fission.codes/ Brooklyn Zelenka at ElixirConf 2021— https://www.youtube.com/watch?v=ogOEEKWxevo Designing Data-Intensive Applications — https://www.bookmall.co.za/products/designing-data-intensive-applications?gclid=Cj0KCQiA2ZCOBhDiARIsAMRfv9ITE1sFKIIcSwK6EGR04aW2RrFZphwrvDQxZekyhuPbEyuqKt6Td8QaApPqEALw_wcB Brooklyn's Tepache Fermentation Recipe — https://ipfs.io/ipfs/bafybeiawn23o6prk4kdhv4cpbfylzr5g2fr22umhvbshf4rlksfrgjzpga/p/Tepache.pdf Witchcraft Suite of Libraries in Haskell/Elixir — https://hexdocs.pm/witchcraft/readme.html Proto School — https://proto.school/ Fission Discord — https://discord.gg/zAQBDEq Fission Discourse — https://talk.fission.codes/ Fission on Luma — https://lu.ma/community/com-XuESjPQQHjh43pc FissionCodes Twitter — https://twitter.com/FISSIONcodes Witchcraft Suite — https://github.com/witchcrafters Special Guest: Brooklyn Zelenka.
Today we have some extra BEAM magic for all of you! Joining us on the show is Chris Miller, who currently works as an Associate Software Engineer at Corvus Insurance. We get into a great conversation with Chris about his history with programming, his long-held interest in mathematics, and how he is trying to bring these two worlds closer together through his work. Chris weighs in with some very important expert perspectives on a range of subjects, from monads and monoids to Vim and Emacs, before we get into the different avenues of Chris' work. Along with an old college friend, Chris runs the informative YouTube Channel, Coding Cave, helps other coders through mentorship and tutoring, and is also multilingual, speaking Mandarin, Spanish, German, and English! We get some illumination on interesting and important concepts such as Turing completeness, programming language theory, and more, all delivered with an accessibility that belies the high level of the material. So for all this, plus our bonus mini-segment with Semsee employee, Sidney Leatherwood, at the end, be sure to listen in today! Key Points From This Episode: The story behind Chris' Twitter handle and his admiration for Leonhard Euler! How Chris is bringing his love of math into his programming work. A crash course on monads and monoids! Chris' teaching and tutoring work and his aim of bringing fun examples into learning. The YouTube channel that Chris runs with an old friend, called Coding Cave. Chris' take on the Vim versus Emacs debate. How Chris learned to program from his father, and his return to it during college. Unpacking programming language theory and the idea of Turing completeness. Chris clears up the difference between computer science and mathematics. Reasons that Chris enjoys working in Elixir compared with other languages. Chris' goals for his YouTube channel and his hopes to spread advanced education. Magic and languages; a programming language theory perspective. Chris' day job as a software engineer at Corvus Insurance using Elixir and Elm. The array of languages that Chris can speak; Mandarin, German, and Spanish. The process of language acquisition and Chris' methods for learning. Why Chris believes starting with the function is the best way to learn a new programming language. The aspects of Elixir and the BEAM that have Chris the most excited at the moment! This week's mini-feature with Sidney Leatherwood and his use of Elixir in production. The comparative rating service that Semsee offers their customers. Hiring in Elixir currently; perks, challenges, and resources in the space. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Chris Miller on Twitter — https://twitter.com/blackeuler Elixir Wizard Conference — http://smr.tl/conf-podcast Leonhard Euler — https://en.wikipedia.org/wiki/LeonhardEuler Curry–Howard Correspondence — https://en.wikipedia.org/wiki/Curry%E2%80%93Howardcorrespondence Haskell — https://www.haskell.org/ Brooklyn Zelenka — https://medium.com/@expede Coding Cave — https://www.youtube.com/channel/UCwIO8jv71cbOyEwJdrYovg Conversations with the Creator: José Valim — https://www.youtube.com/watch?v=BXpoKKkqAX4 Functor — https://en.wikipedia.org/wiki/Functor Spacemacs: Emacs advanced Kit focused on Evil — https://www.spacemacs.org/ hlissner/doom-emacs — https://github.com/hlissner/doom-emacs Turing Completeness — https://en.wikipedia.org/wiki/Turingcompleteness Cal Newport — https://www.calnewport.com/ Boolean Algebra — https://en.wikipedia.org/wiki/Booleanalgebra Clojure — https://clojure.org/ Corvus Insurance — https://www.corvusinsurance.com/ APL — https://en.wikipedia.org/wiki/APL(programming_language) Gleam - https://gleam.run/ Sidney Leatherwood on LinkedIn — https://www.linkedin.com/in/leather-s Semsee — https://semsee.com/ Special Guest: Chris Miller.
Handling date and time is a challenge in any language, but Lau Taarnskov is determined to solve that problem in Elixir. Lau is today’s guest on Elixir Wizards, and this episode is all about his contributions to Elixir. Lau has been involved with web development and e-commerce for decades. He started contributing to Elixir open source in 2014 and created the Calendar and tzdata libraries. Calendar is a datetime library for Elixir, that provides explicit types for datetimes, dates, and times, and full time zone support is provided via its sister package, tzdata. When it comes to the subject of date, time, and time zones, besides talking about it and writing software for it, Lau also writes about it on his blog, Creative Deletion. This episode explores how Lau got started in programming, and what led him to creating Calendar and tzdata. Lau shares the resources that he found helpful when he started using Elixir, and why he was drawn to Elixir in the first place. We hear Lau’s opinions on time zones and daylight savings and whether or not they’re necessary, and he shares some advice for anyone working with time in Elixir. Then it’s time for another edition of Pattern Matching with Todd, in which Todd Resudek asks Brooklyn Zekanka five questions to help us get to know her better. Brooklyn talks about everything from she has lived, what jobs she did before becoming a programmer, and her education in classical music, to her favorite bands, movies, and TV shows, as well as some of the projects she is working on. For all this, and more, don’t miss today’s episode! Key Points From This Episode: Lau explains what TLAs are and why they aren’t always helpful for explicit communication. Lau introduces himself and shares how he got into programming and computer science. The resources Lau found most useful when he started using Elixir, including books he read. What it means that Elixir’s source code is written in Elixir, and why that was helpful for Lau. Lu talks about Calendar, a datetime library that Lau created for Elixir, and Tzdata, a parser and library he created for the tz database, and why he created them. How Lau deconstructed the time zone problems and how his ideas have changed over time. Lau’s opinions on time zones and daylight savings and whether or not they’re necessary. Advice from Lau for anyone working with time in Elixir. Another edition of Pattern Matching with Todd – today’s guest is Brooklyn Zelenka. Where Brooklyn was born, where she has lived, and the jobs she did before programming. Brooklyn talks about her musical background and how it’s similar to programming. Brooklyn shares a pro tip about slides and reflects on her highlights as a speaker. What Brooklyn would be doing if she weren’t a programmer and the genre of music she likes. Brooklyn’s favorite TV shows and movies, including Amadeus and Mad Men. Brooklyn shares what she’s working on currently and the next project she’s excited about. Links Mentioned in Today’s Episode: Lau Taarnskov on Twitter – https://twitter.com/laut Creative Deletion Blog – http://www.creativedeletion.com/ Lau Taarnskov on GitHub – https://github.com/lau Calendar on GitHub – https://github.com/lau/calendar Tzdata on GitHub – https://github.com/lau/tzdata Elixir in Action – https://www.amazon.com/Elixir-Action Programming Elixir – https://www.amazon.com/Programming-Elixir-1-6-Functional-Concurrent/ Brooklyn Zelenka on LinkedIn – https://www.linkedin.com/in/brooklynzelenka/ Brooklyn Zelenka on Twitter – https://twitter.com/expede Brooklyn Zelenka on GitHub – https://github.com/expede FISSIONcodes Website – https://fission.codes/ SmartLogic — https://smartlogic.io/ Amadeus — https://www.rottentomatoes.com/m/amadeus Mad Men — https://www.rottentomatoes.com/tv/mad-men Special Guest: Lau Taarnskov.
Welcome to another episode of Elixir Wizards as we continue our journey into system and application architecture! Our featured guest today is Sundi Myint and she is here to share her journey with Elixir and her non-traditional path to programming. We hear about Sundi's interest in gaming, her role at Cava and a bit of the inspiration behind her amazing Instagram account! We discuss her first internship and how she found herself in the role quite suddenly before diving into the motivation behind her blog post on the history of emojis. Sundi did some serious research into this interesting subject and she shares some of the more technical aspects of the story with us on the show. We talk about architecture and both test and design-driven approaches. Sundi also explains her process and how mapping things out on a whiteboard has been her favored way to do things for some time. Andrea Leopardi then joins us for another edition of Pattern Matching with Todd! He answers Todd's questions about his home life, media favorites, future projects and more! Key Points From This Episode: Sundi's Instagram aesthetic and her love of food and photography. How Sundi got into programming and her first internship. Getting hired at Cava and an introduction to Elixir and the community. Video game programming and Sundi's thoughts on the possibility of pursuing this path. Sundi's first paid job out of college and the tech stack at the company. Thoughts on easily available learning resources and the power of Live View. Some background on Sundi's amazing blog post on the history of emojis. Understanding Unicode, how it works and its role in translation and interpretation. Sundi's perspectives on architecture and domain-driven design. Code design strategies, workflow and the idea and practice of test-driven code. Conversations with stakeholders and moving to the planning stage. How Sundi uses whiteboards to map out her work graphically and Elixir's part in this. Andrea's travels and some of the amazing locations he has visited for conferences. Home life and lifestyle in quarantine for Andrea in Italy. Alternative career paths and Andrea's other interests; balancing creativity and logic. Music, movies and television choices for Andrea. Exciting new projects on the horizon for Andrea; a book, HTTP and more! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Sundi Myint on Twitter — https://twitter.com/sundikhin Sundi Myint on Instagram — https://www.instagram.com/sundikhin Cava — https://cava.com/ Hackers & Painters — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554 Lonestar Elixir — https://lonestarelixir.com/ Bruce Tate — https://codesync.global/speaker/bruce-tate/ EA — https://www.ea.com Groxio Learning — https://grox.io/training/elixir/home Live View — https://support.google.com/maps/thread/11554255?hl=en Build a real-time Twitter clone in 15 minutes with LiveView and Phoenix 1.5 — https://www.youtube.com/watch?v=MZvmYaFkNJI The History of Emojis Blog Post — https://engineering.upside.com/emojis-a-history-75d595bbe4a5?gi=6cd53698e5d Burgergate https://www.theverge.com/2017/10/30/16569346/burgergate-emoji-google-apple Joy of Coding — https://joyofcoding.org/ Test-driven development — https://en.wikipedia.org/wiki/Test-drivendevelopment Mox — https://hexdocs.pm/mox/Mox.html Venmo — https://venmo.com/ Mint — https://www.mint.com/ Avengers — https://www.marvel.com/movies/avengers-endgame DC Elixir — https://www.meetup.com/DC-Elixir/ Todd Resudek — https://medium.com/@toddresudek Andrea Leopardi — https://andrealeopardi.com/ Brooklyn Zelenka — https://medium.com/@expede The Lord of Rings — https://www.rottentomatoes.com/franchise/lordoftherings Wes Anderson — https://www.imdb.com/name/nm0027572/ Scott Pilgrim vs. The World — https://www.rottentomatoes.com/m/scottpilgrimsvstheworld Community — https://www.rottentomatoes.com/tv/community The Office — https://www.rottentomatoes.com/tv/theoffice Rick and Morty — https://www.rottentomatoes.com/tv/rickand_morty Justus Eapen on Twitter — https://twitter.com/justuseapen Eric Oestrich on Twitter — https://twitter.com/ericoestrich Special Guests: Andrea Leopardi and Sundi Myint.
In this episode, we take a look into the current contexts and home lives many of us find ourselves in today, offering top tips for working remotely from home during these challenging times. The lockdowns have caused many of us to reflect. To reflect on our lives, our work, what we’re grateful for, and in this case, our epic last season of Elixir Wizards! Here, we take you through the highlights, the lowlights, our biggest lessons, our juiciest debates, and what you can expect for Season 4 – in sickness and in health. Stay safe, listen, and enjoy! Key Points from This Episode: The importance of demarcating your workspace, especially when the kids are home! Always put your pants on: Why sticking to your morning schedule helps productivity. Ways to eliminate the potential for distraction when working from home. How working from home is enabling programmers to see one another’s human side. Taking a break from conferences, cognition, and learning how to birth a baby Oestrich. Third dimensions and entering the tangential learning plane with Brooklyn Zelenka. The Surprise Toddcast: Why the improvised episode was a hit. What it was like interviewing entrepreneurial couple, Bruce & Maggie Tate. Remember the time the father and son roasted each other on the podcast mic? Why your podcast audience wants to know your guests on a more personal level. A recap of the numbers from Season 1-3 and the 40,000+ Elixir Wizards downloads. A sneak peek into the new Elixir Wizards theme for the upcoming Season 4. Lib versus Web and other essential tips for the lazy Phoenix users out there. Why we need a whole season on application architecture and one-letter module names. The debate sparked by the disagreement between Chris Keathley and Brooklyn Zelenka. Hackers, painters, Paul Graham, and the argument made in favor of dynamic typing. Find out more about Sophie and Meryl’s epic takeover of Elixir Wizards! Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Eric Oestrich — https://twitter.com/ericoestrich?lang=en Justus Eapen — https://twitter.com/justuseapen Brooklyn Zelenka on Witchcraft — https://podcast.smartlogic.io/season-two-zelenka Brooklyn Zelenka — https://twitter.com/expede?lang=en Bruce and Maggie Tate from Groxio on Training — https://podcast.smartlogic.io/s3e8-groxio Saša Jurić — https://twitter.com/sasajuric Bonus Toddcast & Lonestar Preview — https://podcast.smartlogic.io/s3e14-bonus-toddcast-and-lonestar-preview The Lonestar Lunchisode — https://podcast.smartlogic.io/s3-lonestar-lunchisode-2020 Dave Thomas — https://www.davethomas.net/talks_index.html Bonus Episode: Outlaws and The Wizards — https://podcast.smartlogic.io/s3-bonus-outlaws-and-wizards Chris Keathley — https://twitter.com/ChrisKeathley Paul Graham — http://www.paulgraham.com/ Sean Lewis from Divvy on Performance, Hiring and Training — https://podcast.smartlogic.io/s3e12-divvy Devin C. Estes — https://twitter.com/devoncestes?lang=en Muzak — https://www.kickstarter.com/projects/devonestes/muzak-a-mutation-testing-library-for-elixir-and-erlang Special Guest: Todd Resudek.
In today’s episode we have one of our favorite recurring guests, Brooklyn Zelenka, joining us once again! Brooklyn has been on the show in both the first and second seasons to speak about Elixir and functional programming. In those conversations, it came up that this topic is far from exhausted, and since Season 3's theme is working with Elixir, we thought it would be great to have Brooklyn on for a third time. Today, Brooklyn does not speak to Elixir specifically though, but on functional programming more broadly. Fission, her company which is working on developing next-generation hostless apps, actually uses Haskel, but Brooklyn has a ton of experience across the board. She gives us some great insights into what makes the functional versus OOP paradigm great and helps us to understand some of the inner workings of both worlds, talking about abstraction, application, data orientation, and more. Interestingly, Brooklyn does employ some imperative programming in her company through the use of Typescript, but uses a functional style to get around the context switch. We spend some time toward the end of the show digging deeper into macros, and Brooklyn helps to revise understandings of them as code which writes more code as well as clarifies the term 'homoiconic' as it relates to ASTs. Brooklyn covers a whole lot more today so hop on for a deep dive into functional programming with today's great guest. Key Points From This Episode: • Why Brooklyn uses FPE: it can be reused and reasoned about. • Two things that functions provide: abstraction and application. • Data orientation and hiding information: imperative vs functional paradigms. • Understanding imperative programming: it’s less structured and hard to reason about. • Challenges experienced imperative programmers face with functional programming. • Differences between Elixir, Erlang, Haskel, Elm, and Clojure. • Using Clojure: tradeoffs, distinctions, tooling, flexibility, and compatibility with Java. • The language Brooklyn could use if only one existed: Racket. • Bridging functional and imperative paradigms through disciplined use of style. • Segfaults in Haskell related to its compatibility with lib C. • How to use Musl instead of lib C by employing docker files. • Algebraic types and why static types aren’t hindrances in functional languages. • Preferences for tests or proofs and their role in finding types valuable. • Macros as compile-time functions that are difficult to debug. • A definition of a ‘homoiconic’: high-level syntax which represents the AST. • What makes C macros different from Lisp ones. • Architecture in Elixir and the need for a more user-friendly Haskell. Links Mentioned in Today’s Episode: SmartLogic — https://smartlogic.io/ Brooklyn Zelenka on LinkedIn — https://www.linkedin.com/in/brooklynzelenka/ Fission — https://fission.codes/ Seven Languages in Seven Weeks — https://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X Chris Keathley — https://keathley.io/ Hackers and Painters — https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554 Paul Graham — http://www.paulgraham.com/ Special Guest: Brooklyn Zelenka.
Hey everybody and welcome back to Season 2 of the podcast! This season we will be talking about Elixir internals, libraries and the inner workings of the language. In our first episode we are very happy to be joined by Brooklyn Zelenka to start off our journey on the subject with an exploration of her very own Witchcraft. In this episode we talk to Brooklyn about her history with Elixir, how she got started and what attracts her to it. Brooklyn explains the influence that open source philosophy has had on her career in developing and from there she gives a pretty comprehensive introduction to what Witchcraft is, expanding its key concepts. Although this is quite a high level discussion about Elixir and Witchcraft, we are confident that with Brooklyn's expert help even our most uninitiated listener can get some benefit from our conversation. We also talk about type systems, property-based checking and Dialyzer, so for all of this and more make sure to join us as we kick things off for Season 2! Key Points From This Episode: A quick introduction to Brooklyn, where she works and how she got started with Elixir. The influence of open source and library contributions on Brooklyn's development. Getting to grips with Witchcraft; defining monads and functors. Why some of these scary terms do not need to frighten you. A few little things that differentiate Witchcraft and some surprising elements. The convenient guarantees that Witchcraft provides around your data structure. Why there is no type system baked into Elixir; overheads, inputs and outputs. Property-based checking and compile times in Witchcraft. Merging of Elixir and Dialyzer; benefits and problems. Getting in touch with Brooklyn and getting involved with Witchcraft and Elixir. And much more! Links Mentioned in Today’s Episode: Smartlogic — https://www.smartlogic.io/ Brooklyn Zelenka — https://github.com/expede Brooklyn Zelenka on Twitter — https://twitter.com/expede Brooklyn Zelenka Email — hello@brooklynzelenka.com Fission — https://fission.codes/ Elixir — https://elixir-lang.org/ Witchcraft — https://hex.pm/packages/witchcraft Dialyzer — https://github.com/jeremyjh/dialyxir Learn more about how SmartLogic uses Phoenix and Elixir. (https://smr.tl/2Hyslu8) Special Guest: Brooklyn Zelenka.
We talk with Brooklyn Zelenka from SPADE Co. about their current and past Elixir projects and how they are deployed. Brooklyn Zelenka - SPADE Co. (https://spade.builders/) Find Brooklyn elsewhere online: https://twitter.com/expede https://github.com/expede 1:08 - Brooklyn’s Background Brooklyn's background and experience with Elixir is deep. Huge open source contributor. Got started in Elixir just after Phoenix got to 1.0. 1:53 - Worked on several Elixir projects in production. 2:43 - Why she got into Elixir. - Real Time - More performant than Rails. - Great documentation - Industrial-grade 4:38 - When you wouldn't use Elixir. Easy to get stakeholder buy-in. Just point to WhatsApp. Elixir is made for 2019 CLI tools Repl-driven development TDD tools built in by default All the best practices we have today are built in. 7:14 - Where has Brooklyn hosted her apps? Heroku for POC's. AWS for production. Dockerized because "kubernetes is the new hotness" 9:40 - Do you do any clustering? Load balanced above. AWS load balancing is very standard. They're well understood and have a nice developer experience. 10:29 Are you able to get any zero downtime deploys? Zero downtime deploys. Awesome but impractical. Rolling deploys are easier and usually more appropriate. Some requirements make it valuable. Erlang error states. Exceptional. Allows you to build for the happy path. Don't worry about error handling all the time. Witchcraft and dark magic. Monads. Poke around the standard library. 12:50 - How does Elixir compare to Rails in terms of response times, and other aspects? 15:32 - What libraries do you use and what have you built? 22:41 - Any cool features of OTP you are using? 25:36 - One tip to developers new to Elixir Build up a peer-to-peer cli chat from scratch in one GenServer. Find her at @expede everywhere on the internet. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smr.tl/2Hyslu8) Special Guest: Brooklyn Zelenka.
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Brooklyn Zelenka In this episode of Elixir Mix, the panel talks to Brooklyn Zelenka who lives in Vancouver, Canada. Listen to the panel and the guest talk about various topics, such as: different Elixir libraries, Quark, Witchcraft, Exceptional, ConsenSys, Meetup, among others. Show Topics: 1:33 – Let’s talk about Exceptional for that library? 1:40 – Brooklyn: Sure, it helps with flow. 3:33 – You are making Exceptional more accessible? 3:35 – Brooklyn: Yes, more conceptual. 3:49 – Panelist: What’s the adaptation like? 4:09 – Brooklyn: People seem to like it. 4:33 – Panelist: What were you doing before that? 4:42 – Brooklyn: First language was JavaScript. There is a huge Ruby community. Tons of Ruby refugees looking for help. 5:27 – There seems to be a large migration from Ruby to Elixir. Have you played with Ruby at all? 5:40 – Brooklyn: Yes, I have used Ruby for a couple of years. There is such an interest in Elixir from the Ruby community. They are such different languages. The aesthetic is similar, and the way the languages are set-up is completely different. 6:41 – Panelist: So not having three or four different alien methods? I have been developing Elixr for a while now, but Ruby doesn’t solve modern-day problems. The fact that you have been working with Elixir since 2014 is amazing. 7:24 – Brooklyn: The first library I wrote was Quark. Then that led into Witchcraft. 10:49 – Panelist adds in his comments. 11:06 – Brooklyn: There are a lot of different things I would love to see in the libraries. At what point do we say that this is the default style in Elixir? My keynote was exactly about this at a conference this year. Elixir hits a nice spot in the program place. It’s very accessible. I’ve brought into these concepts because of Elixir. 12:37 – Let’s talk Exceptions. Will it become apart of core? 13:14 – Brooklyn: I wouldn’t mind that it would become apart of core. 15:10 – Any other questions around Exceptional or Exception or other libraries? 15:25 – Panelist: Let’s change topics. 15:30 – Brooklyn has her own company now. 15:52 – Panelist: Good job on Roberts Overload! 16:00 – Panelist: Where does block chain and Elixir meet? 16:08 – Brooklyn answers this question. 17:16 – Brooklyn: Not all block chains are... 19:02 – Brooklyn: Another good fit would be... 19:33 – Panelist: My company is apart of ConsenSys. I hear a lot about the block chain and others. How can Elixir help the block chain? (20:15) You mentioned earlier that Elixir could solve a lot of the issues that bock chain is having. Can you elaborate on this? 20:21 – Brooklyn answers this question – here – check it out! 21:21 – Brooklyn: By bringing in these concepts... 22:16 – Brooklyn makes a huge podcast announcement!! Breaking News! 22:37 – What does that mean – messages on a... 24:06 – Advertisement – Digital Ocean! 24:43 – The mail messages contents does that sit on the ledger or... 25:01 – Brooklyn talks about this topic in detail. 26:00 – Brooklyn: There is a distribution of control. I am going to have to run a program to check when a message comes in – I would like that to be hooked up to my UI, ideally. 26:35 – Panelist: You are a fascinating person! 26:45 – Chuck: You also do Elixir training for people? 26:56 – Yes! We help companies and go to conferences. This is for zero experience with Elixir. Over the course of a couple of days to give people confidence production in Elixir. It won’t give you all of the knowledge, but it helps. This also gives people access to me, and my business partner, to use us for questions and so on. 28:56 – You live in Vancouver. What is the Elixir community – through Meetup – what is the temperature like there for Elixir or Ruby, etc.? What are the trends looking like? 29:31 – Brooklyn: Yes, check us out at Meetup. 35:18 – Panelist: I think that is interesting on your opinions on GO with your background. 35:35 – Brooklyn continues her ideas on this topic. It’s not to say that GO is the worse language ever, but from what I have seen that it’s a nice experience in Elixir that things work. All the libraries integrate nicely. There is a style and flavor that is friendly. You get the friendliness with all of this power. You can scale up very nicely from a single node. 37:47 – Where can Elixir “should” go and could go? 38:21 – Brooklyn answers this question and others. 39:21 – Dialyxir / Elixir. 41:27 – Dialyxir overall is pretty nice and it gets the job done with what Elixir needs it to do. Type system. 42:09 – The pre-existing eco-system isn’t built for it. You don’t know if it’s safe to run? There is no way to know about this. The overhead for the programmer tends to be really high. Why don’t we add things like – adding property checks – to ensure that you know how this thing will behave when it run. Using some other techniques – not just in tests – but integrate it into the core workflow. This is really important 44:22 – Advertisement! 45:03 – Panelist chimes in. 45:21 – Brooklyn: Have you seen Alpaca? I am sure it’s 1.0 now. It runs on the beam. 46:15 – Panelist adds comments. 46:25 – Brooklyn: This is why I brought up RChain earlier in the conversation. 47:01 – Block Chain. 48:17 – Panelist talks. 48:53 – Brooklyn: At the application level – one of my projects is having a language that will run... 51:17 – Chuck: I am still learning Elixir. So this is way beyond from where I am at. Let’s do some picks! Links: Coder Job eBook by Charles Max Wood Elixir Rails GO Quark Witchcraft Type Class Algae Exceptional Phoenix Exceptional Robot Overload Raft Consensus Algorithm Ethereum Status Codes Dialyxir Expede Type Class Alpaca Kaizen Matt Diep House ConsenSys / Ethql Metabase TerraGenesis TerraGenesis – Space Colony Wabi-Sabi RChain Brooklyn’s Medium Brooklyn’s Meetup in Vancouver Brooklyn’s GitHub Brooklyn’s LinkedIn Brooklyn – Lambda Conference 2018 Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Make some incremental step forward – adding onto Mark’s pick - Kaizen. TerraGenesis TerraGenesis – Space Colony Honest feedback! What can I change? Phoenix Mark Workspace Environment: Kaizen – Change for the Better = Improvement. Josh Article – Value-Oriented Programming Eric Library – ConsenSys / Ethql Metabase Brooklyn Wabi-Sabi – seeing the beauty in things that imperfect.
Panel: Charles Max Wood Mark Ericksen Josh Adams Eric Berry Special Guest: Brooklyn Zelenka In this episode of Elixir Mix, the panel talks to Brooklyn Zelenka who lives in Vancouver, Canada. Listen to the panel and the guest talk about various topics, such as: different Elixir libraries, Quark, Witchcraft, Exceptional, ConsenSys, Meetup, among others. Show Topics: 1:33 – Let’s talk about Exceptional for that library? 1:40 – Brooklyn: Sure, it helps with flow. 3:33 – You are making Exceptional more accessible? 3:35 – Brooklyn: Yes, more conceptual. 3:49 – Panelist: What’s the adaptation like? 4:09 – Brooklyn: People seem to like it. 4:33 – Panelist: What were you doing before that? 4:42 – Brooklyn: First language was JavaScript. There is a huge Ruby community. Tons of Ruby refugees looking for help. 5:27 – There seems to be a large migration from Ruby to Elixir. Have you played with Ruby at all? 5:40 – Brooklyn: Yes, I have used Ruby for a couple of years. There is such an interest in Elixir from the Ruby community. They are such different languages. The aesthetic is similar, and the way the languages are set-up is completely different. 6:41 – Panelist: So not having three or four different alien methods? I have been developing Elixr for a while now, but Ruby doesn’t solve modern-day problems. The fact that you have been working with Elixir since 2014 is amazing. 7:24 – Brooklyn: The first library I wrote was Quark. Then that led into Witchcraft. 10:49 – Panelist adds in his comments. 11:06 – Brooklyn: There are a lot of different things I would love to see in the libraries. At what point do we say that this is the default style in Elixir? My keynote was exactly about this at a conference this year. Elixir hits a nice spot in the program place. It’s very accessible. I’ve brought into these concepts because of Elixir. 12:37 – Let’s talk Exceptions. Will it become apart of core? 13:14 – Brooklyn: I wouldn’t mind that it would become apart of core. 15:10 – Any other questions around Exceptional or Exception or other libraries? 15:25 – Panelist: Let’s change topics. 15:30 – Brooklyn has her own company now. 15:52 – Panelist: Good job on Roberts Overload! 16:00 – Panelist: Where does block chain and Elixir meet? 16:08 – Brooklyn answers this question. 17:16 – Brooklyn: Not all block chains are... 19:02 – Brooklyn: Another good fit would be... 19:33 – Panelist: My company is apart of ConsenSys. I hear a lot about the block chain and others. How can Elixir help the block chain? (20:15) You mentioned earlier that Elixir could solve a lot of the issues that bock chain is having. Can you elaborate on this? 20:21 – Brooklyn answers this question – here – check it out! 21:21 – Brooklyn: By bringing in these concepts... 22:16 – Brooklyn makes a huge podcast announcement!! Breaking News! 22:37 – What does that mean – messages on a... 24:06 – Advertisement – Digital Ocean! 24:43 – The mail messages contents does that sit on the ledger or... 25:01 – Brooklyn talks about this topic in detail. 26:00 – Brooklyn: There is a distribution of control. I am going to have to run a program to check when a message comes in – I would like that to be hooked up to my UI, ideally. 26:35 – Panelist: You are a fascinating person! 26:45 – Chuck: You also do Elixir training for people? 26:56 – Yes! We help companies and go to conferences. This is for zero experience with Elixir. Over the course of a couple of days to give people confidence production in Elixir. It won’t give you all of the knowledge, but it helps. This also gives people access to me, and my business partner, to use us for questions and so on. 28:56 – You live in Vancouver. What is the Elixir community – through Meetup – what is the temperature like there for Elixir or Ruby, etc.? What are the trends looking like? 29:31 – Brooklyn: Yes, check us out at Meetup. 35:18 – Panelist: I think that is interesting on your opinions on GO with your background. 35:35 – Brooklyn continues her ideas on this topic. It’s not to say that GO is the worse language ever, but from what I have seen that it’s a nice experience in Elixir that things work. All the libraries integrate nicely. There is a style and flavor that is friendly. You get the friendliness with all of this power. You can scale up very nicely from a single node. 37:47 – Where can Elixir “should” go and could go? 38:21 – Brooklyn answers this question and others. 39:21 – Dialyxir / Elixir. 41:27 – Dialyxir overall is pretty nice and it gets the job done with what Elixir needs it to do. Type system. 42:09 – The pre-existing eco-system isn’t built for it. You don’t know if it’s safe to run? There is no way to know about this. The overhead for the programmer tends to be really high. Why don’t we add things like – adding property checks – to ensure that you know how this thing will behave when it run. Using some other techniques – not just in tests – but integrate it into the core workflow. This is really important 44:22 – Advertisement! 45:03 – Panelist chimes in. 45:21 – Brooklyn: Have you seen Alpaca? I am sure it’s 1.0 now. It runs on the beam. 46:15 – Panelist adds comments. 46:25 – Brooklyn: This is why I brought up RChain earlier in the conversation. 47:01 – Block Chain. 48:17 – Panelist talks. 48:53 – Brooklyn: At the application level – one of my projects is having a language that will run... 51:17 – Chuck: I am still learning Elixir. So this is way beyond from where I am at. Let’s do some picks! Links: Coder Job eBook by Charles Max Wood Elixir Rails GO Quark Witchcraft Type Class Algae Exceptional Phoenix Exceptional Robot Overload Raft Consensus Algorithm Ethereum Status Codes Dialyxir Expede Type Class Alpaca Kaizen Matt Diep House ConsenSys / Ethql Metabase TerraGenesis TerraGenesis – Space Colony Wabi-Sabi RChain Brooklyn’s Medium Brooklyn’s Meetup in Vancouver Brooklyn’s GitHub Brooklyn’s LinkedIn Brooklyn – Lambda Conference 2018 Sponsors: Get a Coder Job Digital Ocean Code Badges Cache Fly Picks: Charles Make some incremental step forward – adding onto Mark’s pick - Kaizen. TerraGenesis TerraGenesis – Space Colony Honest feedback! What can I change? Phoenix Mark Workspace Environment: Kaizen – Change for the Better = Improvement. Josh Article – Value-Oriented Programming Eric Library – ConsenSys / Ethql Metabase Brooklyn Wabi-Sabi – seeing the beauty in things that imperfect.
Check our patreon page for show notes: www.patreon.com/elixirfountain
In this episode I talk with Brooklyn Zelenka. We talk her introduction to functional programming, various user groups she has started, her consultancy Robot Overlord, and her Monad Nomad tour.