Thinking Elixir Podcast

ThinkingElixir.com
undefined
Jul 5, 2022 • 1h 8min

106: Coding Music Live in SonicPi with Sam Aaron

The SonicPi project has been letting people live code musical performances for years. Sam Aaron joins us to talk about the project and how Elixir is playing an increased role. The project uses multiple languages and frameworks, in fact, Joe Armstrong created the Erlang portion for handling the concurrent IO needs. We talk about where the project is, what's new in the upcoming release, and more about the future of Elixir with the project. LiveView as a UI for jamming with your friends in a distributed musical performance tool? Cool! We also talk about SonicPi being used in the education space and introducing kids to coding and much more! Show Notes online - http://podcast.thinkingelixir.com/106 Elixir Community News https://github.blog/2022-06-27-github-advisory-database-now-supports-erlang-and-elixir-packages/ – GitHub launched support for Hex in tracking and reporting security advisories for projects https://survey.stackoverflow.co/2022/ – StackOverflow released their Developer Survey results Elixir is no.2 most loved language Phoenix is no.1 most loved web framework https://twitter.com/josevalim/status/1540252711626706944 – José Valim's thoughts on the results https://elixirpatterns.dev – Elixir Patterns book is a project by Alex Koutmos and Hugo Baraúna https://twitter.com/akoutmos/status/1541078170383835136 – Alex created Kino PR for rendering supervision tree in Livebook https://hex.pm/packages/nerves_system_mangopi_mq_pro – Frank Hunleth announced that Nerves now has support for the RISC-V MangoPi https://twitter.com/fhunleth/status/1541116329553428480 – Frank's announcement https://mangopi.cc/ – MangoPi site https://lpil.uk/blog/deploying-gleam-on-fly-io/ – Louis Pilfold use new v0.22 Gleam deployment feature for deploying to Fly.io https://twitter.com/cigrainger/status/1539538577344045057 – Explorer v0.2.0 was released https://podcast.thinkingelixir.com/104 – Recently interview with Chris Grainger in episode 104 about Explorer. https://github.com/erlang/rebar3/releases/tag/3.19.0 – Rebar 3.19.0 http://pesquisecomelixir.com.br – José Valim announced a new initiative called "Research with Elixir" https://twitter.com/josevalim/status/1541775306767450114 – Announcement post from José that includes more information Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://sonic-pi.net/ https://github.com/sonic-pi-net/sonic-pi https://github.com/samaaron https://twitter.com/josevalim/status/1519377962063249409 https://twitter.com/matschaffer/status/1520914785625280512 https://supercollider.github.io/ https://en.wikipedia.org/wiki/Kintsugi – Fixing broken pottery with gold https://www.patreon.com/samaaron Guest Information https://twitter.com/samaaron – Sam Aaron on Twitter https://twitter.com/Sonic_Pi – Sonic Pi on Twitter https://github.com/samaaron – on Github https://www.instagram.com/samaaron/ – Instagram https://www.linkedin.com/in/samaaron/ – LinkedIn https://www.patreon.com/samaaron – Patreon Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
Jun 28, 2022 • 55min

105: Plausible Analytics, Elixir, and Privacy with Uku Taht

We learn about Plausible Analytics, a privacy respecting alternative to Google Analytics that is cloud or self-hostable, OpenSource and written in Elixir! Uku Taht shares how he founded the company, the mission he is on, and what he prioritizes. The company practices a “transparent by default” approach. This means they share a lot about what’s going on, this includes how they recently reached $1m ARR, some of their growing pains, and dealing with the weight of being “the one who has to fix things.” We end with a candid discussion about wellness in our profession and how when we are too close to the problems, we become blind to our own successes. A great, transparent conversation with Uku! Show Notes online - http://podcast.thinkingelixir.com/105 Elixir Community News https://2022.elixirconf.com/ – ElixirConf 2022 - Aug 30 - Sep 2 in Denver, CO. Call for proposals due July 2nd https://2022.elixirconf.com/registration – Early bird tickets are on sale https://twitter.com/CodeBEAMio/status/1537502784790085634 – CodeBEAM America (November) is accepting training ideas for their upcoming conference. https://hexdocs.pm/req/changelog.html#v0-3-0 – Req v0.3 released with a new API https://hexdocs.pm/req/changelog.html#plugins – List of available Req plugins - req_easyhtml, req_s3, req_hex, req_github_oauth https://twitter.com/sean_moriarity/status/1537405584710029313 – Sean Moriarity shared a major milestone! The public release of Axon and AxonONNX. https://podcast.thinkingelixir.com/102 – Recent interview with Sean Moriarity about this work. https://twitter.com/elixirweekly/status/1538082201212006400 – IntelliJ IDE gets updated Elixir plugin, v13.1.0 https://twitter.com/whatyouhide/status/1538908870743101440 – NimbleLZ4, for performing LZ4 lossless compression, released with the help of Rustler Precompiled Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://github.com/plausible/analytics https://twitter.com/PlausibleHQ/status/1532265765042376704 https://plausible.io/about http://elixirkoans.io/ https://www.youtube.com/watch?v=6U7cLUygMeI https://en.wikipedia.org/wiki/Facebook%E2%80%93Cambridge_Analytica_data_scandal https://clickhouse.com/ https://en.wikipedia.org/wiki/Online_analytical_processing https://github.com/plausible/clickhouse_ecto https://plausible.io/blog/you-probably-dont-need-a-single-page-app https://twitter.com/PlausibleHQ/status/1532265765042376704 – Announced they reached a revenue milestone Guest Information https://twitter.com/ukutaht – Uku on Twitter https://twitter.com/PlausibleHQ – Plausible HQ on Twitter https://fosstodon.org/@plausible – Mastodon https://github.com/ukutaht/ – Uku on Github https://github.com/plausible – Plausible on Github https://plausible.io/blog – Plausible Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
Jun 21, 2022 • 49min

104: Exploring Our Data with Chris Grainger

Chris Grainger explains Explorer, Nx's recent addition. It's a “Data Frame” library which sounds far more nebulous than it is. It lets us explore and manipulate two-dimensional data like we already do with DB tables, spreadsheets, CSV files, etc. Only this works in memory, is faster, and has predefined functions that make it very powerful. Explorer fills an important slot in the overall pie for data science and ML in Elixir. However, Explorer is also one of the tools that “regular” Elixir devs can take advantage of today! Show Notes online - http://podcast.thinkingelixir.com/104 Elixir Community News https://twitter.com/josevalim/status/1535008937640181760 – At ElixirConf EU, José Valim announced there is an ongoing PhD scholarship for researching and developing a type system for Elixir that is powered by set-theoretic types. https://www.irif.fr/~gc/ – Giuseppe Castagna's Home Page. Senior Research Scientist https://arxiv.org/abs/2111.03354 – Programming with union, intersection, and negation types https://twitter.com/fhunleth/status/1534826558774464512 https://podcast.thinkingelixir.com/72 – Typecheck interview https://github.com/ergo-services/ergo – We learned of a Golang library called “ergo” that is an “actor based Framework for creating microservices using technologies and design patterns of Erlang/OTP in Golang” https://twitter.com/erlangforums/status/1534822378722713601 – Patch Package OTP 25.0.1 Released https://erlangforums.com/t/patch-package-otp-25-0-1-released/1526 – Minor bug fixes. Zlib updated https://flowbite.com/docs/getting-started/introduction/ – More free alternative to TailwindUI https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.2 – tailwindcss CLI v3.1.2 released which includes postcss-import into the CLI bundle https://twitter.com/adamwathan/status/1535989815778463746 – Adam Wathan, the Tailwind CSS guy, had a fun quote that we liked. “Open source is “right to repair” for software — nothing more, nothing less. Maintain that attitude and any frustration or entitlement you feel will be replaced with gratitude. Better for maintainers, and better for you.” Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://github.com/elixir-nx/explorer https://hexdocs.pm/explorer/Explorer.html https://hexdocs.pm/explorer/Explorer.DataFrame.html https://hexdocs.pm/explorer/Explorer.Series.html https://twitter.com/cigrainger/status/1518896955921154048 – Tweet about using Rustler and Rustler Precompiled https://hexdocs.pm/explorer/exploring_explorer.html – Includes a “Ten Minutes to Explorer” Livebook guide in the docs to walk you through setup to getting started with a good overview. https://www.cigrainger.com/posts/introducing-explorer/ https://databricks.com/glossary/what-are-dataframes https://pandas.pydata.org/docs/user_guide/dsintro.html https://dataframes.juliadata.org/stable/ https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html https://github.com/dashbitco/table https://huggingface.co/ https://www.amplified.ai/ – Chris' company https://pandas.pydata.org/ https://en.wikipedia.org/wiki/Extract%2C_transform%2C_load https://github.com/tyrchen/ex_polars – Library that got him started with Rust, Rustler and working with polars https://hexdocs.pm/rustler_precompiled/RustlerPrecompiled.html https://github.com/philss/rustler_precompiled https://huggingface.co/docs/transformers/main_classes/tokenizer https://github.com/elixir-nx/tokenizers https://docs.rs/crate/polars/0.22.0 https://github.com/pola-rs/polars https://parquet.apache.org/ https://avro.apache.org/ https://arrow.apache.org/overview/ https://vega.github.io/vega-lite/ https://www.rdocumentation.org/packages/dplyr/ Guest Information https://twitter.com/cigrainger – on Twitter https://github.com/cigrainger/ – on Github https://cigrainger.com – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
Jun 14, 2022 • 54min

103: Vaxine.io and CRDT DBs with James Arthur

James Arthur shares his project Vaxine.io, an Elixir layer built on top of a CRDT based distributed Erlang database called Antidote DB. We cover what CRDTs are and introduce how they work. We learn more about Antidote DB, the CURE protocol and especially the Vaxine.io project that adds Ecto types and makes it more approachable to Elixir applications. As applications become more global, the need for strongly consistent distributed writes becomes much more important. Show Notes online - http://podcast.thinkingelixir.com/103 Elixir Community News https://www.elixirconf.eu/talks/typecheck-effortless-runtime-type-checking/ – Marten shared an update on the TypeCheck project from ElixirConf.EU (June 9-10) https://podcast.thinkingelixir.com/72 – Episode with Martin about TypeCheck https://twitter.com/elixirphoenix/status/1532707770415325185 https://twitter.com/wojtekmach/status/1532662628077785088 – Screenshot showing the single-file LiveView page https://github.com/wojtekmach/mix_install_examples/blob/main/phoenix_live_view.exs [Mix Install Examples - Phoenix LiveView app in ~70 LOC](Mix Install Examples - Phoenix LiveView app in ~70 LOC) https://twitter.com/polvalente/status/1532439823964946432 – New Nx library called nx-signal was shared by the author, Paulo Valente https://github.com/polvalente/nx-signal https://twitter.com/josevalim/status/1533136904736198656 – José's cryptic tweet about Torchvision, ONNX, and a LiveView app https://pytorch.org/vision/stable/index.html – Torchvision docs https://onnx.ai/ – ONNX a format for transporting trained machine learning models https://github.com/thehaigo/live_onnx – LiveOnnx project that combines the previous things with Axon and LiveView https://github.com/oestrich/aino – Aino released 0.5 https://twitter.com/ericoestrich/status/1533995968793919488 – Eric explained v0.5 Aino changes https://twitter.com/josevalim/status/1533907809942880261 – José Valim tweeted a new graphic, teasing something new in Nx land. https://twitter.com/josevalim/status/1534120503182602240 – José mentioned that there are 3 major announcements this month starting at ElixirConfEU. Stay tuned! Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://vaxine.io – Vaxine.io website https://antidotedb.eu – Antidote DB website https://crdt.tech – CRDT information website https://vaxine.io/tech/how-it-works https://github.com/vaxine-io https://github.com/AntidoteDB/antidote – Erlang project by a different group "A planet scale, highly available, transactional database built on CRDT technology" https://www.antidotedb.eu/ https://github.com/vaxine-io/vaxine https://github.com/vaxine-io/vax – Data access library and Ecto integration https://github.com/vaxine-io/examples – Example and demo apps https://www.foundationdb.org/ https://riak.com/index.html https://www.cockroachlabs.com/ https://en.wikipedia.org/wiki/CockroachDB https://supabase.com/ https://lunar.vc/ Guest Information https://twitter.com/VaxineIO – Vaxine.io on Twitter https://github.com/vaxine-io/ – Vaxine Github Organization https://vaxine.io – Vaxine.io website https://vaxine.io/blog – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
Jun 7, 2022 • 42min

102: Machine Learning in Elixir with Sean Moriarity

Sean Moriarity, the author of Genetic Algorithms in Elixir, lays out Machine Learning in the Elixir space. We talk about where it is today and where it's going in the future. Sean talks more about his book, how that led to working with José Valim which then led to the creation of Nx. He fills us in on recent ML events with Google and Facebook and shows us how Elixir fits into the bigger picture. It's a fast developing area and Sean helps us follow the important points even if we aren't doing ML ourselves… because our teams may still need it. Show Notes online - http://podcast.thinkingelixir.com/102 Elixir Community News https://github.com/phoenixframework/phoenix_live_view/blob/v0.17.10/CHANGELOG.md – Phoenix LiveView gets a minor release v0.17.10 with formatting improvements https://www.rakeroutes.com/2022/05/18/let-s-write-an-elixir-livebook-smart-cell – Creating custom Livebook Smart Cells https://twitter.com/evadne/status/1527651328188723209 – Etso was updated to work with the latest Ecto https://github.com/evadne/etso – Etso library Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://pragprog.com/titles/smgaelixir/genetic-algorithms-in-elixir/ – Genetic Algorithms in Elixir https://github.com/elixir-nx/nx – Numerical Elixir (Nx) https://github.com/elixir-nx/axon – Nx-powered Neural Networks for Elixir. https://pragprog.com/titles/smgaelixir/genetic-algorithms-in-elixir/ – Book - Genetic Algorithms in Elixir https://scala-lang.org/ https://www.quora.com/ https://pragprog.com/titles/elixir16/programming-elixir-1-6/ https://pragprog.com/titles/phoenix14/programming-phoenix-1-4/ https://www.linkedin.com/in/briancardarella/ https://dockyard.com/ https://dockyard.com/blog/authors/sean-moriarity – Sean's blog posts on Dockyard blog https://numpy.org/ https://llvm.org/ https://en.wikipedia.org/wiki/Softmax_function https://en.wikipedia.org/wiki/Natural_language_processing https://xkcd.com/1897/ – XKCD comic https://www.image-net.org/ https://www.deeplearningbook.org/ https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html https://erlef.org/wg/machine-learning – Erlang Eco-system foundation machine working group Guest Information https://twitter.com/sean_moriarity – on Twitter https://github.com/seanmor5/ – on Github https://seanmoriarity.com – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
May 31, 2022 • 1h 2min

101: Replicating SQLite using Litestream with Ben Johnson

Ben Johnson explains his project Litestream.io, an OpenSource tool that replicates SQLite databases to remote servers and to backup locations like S3 for durability. We talk about how moving data out to the user creates true edge applications. We discuss what types of problems this helps solve, the architectures that become possible, and how a globally distributed Phoenix application could use this. He shares how Fly.io acquired the project and brought him on full-time to continue his work on it. Fascinating discussion that challenges many of the assumptions about how we've been building “web” systems for years. Show Notes online - http://podcast.thinkingelixir.com/101 Elixir Community News https://www.erlang.org/blog/my-otp-25-highlights/ – OTP 25 was officially released https://www.erlang.org/eeps/eep-0049 – EEP document discussing the “maybe” expression https://www.erlang.org/doc/reference_manual/expressions.html#maybe – Official docs for “maybe” feature https://www.erlang.org/blog/faster-rand/ – A new fast Pseudo Random Generator https://jobs.ericsson.com/job/Stockholm-Open-SourceErlang-Developer-Stoc/746811902/ – Ericsson, the company behind Erlang, is hiring for an OpenSource developer to join the Erlang team. https://www.bbc.com/news/business-61562651 – Klarna layoffs https://hexdocs.pm/elixir/main/PartitionSupervisor.html – PartitionManager feature coming in Elixir v1.14 has docs online so you can learn about it early. https://twitter.com/DNAutics/status/1528434291872505856 – Isaac Yonemoto made the JavaScript engine in Zig accessible through Zigler and therefore Elixir https://podcast.thinkingelixir.com/98 – Follow-up from episode 98 with Dominic Letz about writing an Elixir application that runs on mobile devices and can be installed from the iOS AppStore. https://ionicframework.com/ https://twitter.com/ElixirConf/status/1526654041626923008 – ElixirConf 2022 in Colorado - CFP is open https://2022.elixirconf.com/speaker-cfp – Where to submit your talk proposal https://www.elixirconf.eu/ – ElixirConf EU in London on June 9-10 https://elixirconf.com/events – ElixirConf US in Colorado on August 30-Sep2 Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://litestream.io/ https://fly.io/blog/all-in-on-sqlite-litestream/ https://github.com/benbjohnson/litestream – Project on Github https://sqlite.org/index.html https://sqlite.org/whentouse.html – SQLite guide on "when to use" it https://github.com/elixir-sqlite/ecto_sqlite3 https://github.com/boltdb/bolt https://en.wikipedia.org/wiki/Write-ahead_logging https://raft.github.io/ https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type https://litestream.io/tips/ – Page covers tips https://www.kernel.org/doc/html/latest/filesystems/fuse.html – Understanding what a FUSE filesystem is Guest Information https://twitter.com/benbjohnson – on Twitter https://github.com/benbjohnson/ – on Github https://github.com/benbjohnson/litestream – Project on Github Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
May 24, 2022 • 1h 32min

100: 10 Years of Elixir with José Valim

Our 100th episode is spent with José Valim celebrating 10 years of Elixir. We close out our 5-part series talking about the recent 1.13 release, the upcoming 1.14 release and looking into the future and v2.0. We learn that many features were created with Nx in mind but are still broadly helpful to Elixir developers. José gives a 1-minute explanation of how ex_unit works, explains what usually makes it into a point release, and how adding stepped ranges meant changes to many Enum functions and so much more! In addition to Elixir, we talk about his journey with Dashbit and we end up learning how the song "The Final Countdown" by Europe might actually be teaching functional programming and recursion?? A super packed episode! Show Notes online - http://podcast.thinkingelixir.com/100 Elixir Community News https://news.livebook.dev/v0.6-automate-and-learn-with-smart-cells-mxJJe – Livebook v0.6 released with new "Smart Cells" https://twitter.com/josevalim/status/1524761086880276482 – Livebook Twitter thread https://www.youtube.com/watch?v=4hVIxyHxwK8 – Livebook announcement and demonstration video https://youtu.be/4hVIxyHxwK8?t=409 – Time signature for talking about making custom Smart Cells https://github.com/livebook-dev/nerves_livebook – Nerves Livebook v0.6 was also released https://stackoverflow.blog/2022/05/11/stack-overflow-2022-developer-survey-is-open/ – Stack Overflow - 2022 Developer Survey is open until June 1st. https://meta.stackoverflow.com/questions/417991/take-the-2022-developer-survey – More information about the survey https://twitter.com/DNAutics/status/1526358294016794624 – Zig adds the ability to execute Javascript from Zig https://github.com/wojtekmach/req – Wojtek Mach is working on Req and is adding some pretty cool features https://github.com/wojtekmach/req_easyhtml https://github.com/wojtekmach/req_hex https://twitter.com/wojtekmach/status/1525226000283467776 – Wojtek teasing a new Req feature https://twitter.com/wojtekmach/status/1525972732680232960 – Wojtek teasing another new Req feature https://www.youtube.com/playlist?list=PLyO-58-sOapwMYqvLRtvV8AGPdREu5Wg7 – Empex MTN presentation videos are up! https://www.elixirconf.eu/ – ElixirConf EU in London on June 9-10 https://elixirconf.com/events – ElixirConf US in Colorado on August 30 - Sep 2 Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://podcast.thinkingelixir.com/82 – Reviewing Elixir with José Valim - Part 1 https://podcast.thinkingelixir.com/87 – Reviewing Elixir with José Valim - Part 2 https://podcast.thinkingelixir.com/91 – Reviewing Elixir with José Valim - Part 3 https://podcast.thinkingelixir.com/96 – Reviewing Elixir with José Valim - Part 4 https://github.com/elixir-lang/elixir/blob/v1.13/CHANGELOG.md – v1.13 https://podcast.thinkingelixir.com/60 – 60 - Compile Faster with Marc-André Lafortune mix xref trace FILE https://podcast.thinkingelixir.com/54 – AST Parsing using Sourceror with Lucas San Román New power operator "**" mix test supports --profile-require=time https://github.com/elixir-lang/elixir/blob/main/CHANGELOG.md – v1.14 Dashbit as a company and growth over time. Elixir v2.0? https://podcast.thinkingelixir.com/54 – AST Parsing using Sourceror with Lucas San Román https://talonvoice.com/ https://www.erlang.org/eeps/eep-0054.html https://www.elixirconf.eu/ – ElixirConf EU - hybrid conference 9-10 June 2022 https://livebook.dev/ https://github.com/elixir-nx/explorer https://github.com/elixir-nx/scholar https://github.com/elixir-nx/axon/ https://podcast.thinkingelixir.com/95 – Rustler Precompiled with Philip Sampaio https://github.com/lukaszsamson https://github.com/elixir-lsp/elixir-ls https://github.com/elixir-lang/elixir/issues?q=is%3Aopen+is%3Aissue+milestone%3Av2.0 https://www.youtube.com/watch?v=9jK-NcRmVcw – Europe - The Final Countdown Guest Information https://twitter.com/josevalim – on Twitter https://github.com/josevalim – on Github https://dashbit.co/ – Dashbit website and blog https://erlef.org/news/ – The Erlang Ecosystem Foundation news Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
May 17, 2022 • 44min

99: Slipstream and Tree-Sitter with Michael Davis

Michael Davis explains Slipstream, a Phoenix channels websocket client library that enables Elixir applications to become a client of a Phoenix channel on another server. Out of this work, an underlying websocket library was created built on mint, which has now officially become part of the mint project. We talk about other libraries in the same space and why Slipstream was created. Michael was also involved in the recent Tree-Sitter Elixir work that Github celebrated and he shares some insight into that work as well! Show Notes online - http://podcast.thinkingelixir.com/99 Elixir Community News https://twitter.com/remote_ruby/status/1522546728922226691 – José Valim was a guest on the Remote Ruby podcast talking about his history as a Rails core contributor and the creation of Elixir. https://share.transistor.fm/s/7dc8e2e3 – Remote Ruby podcast https://github.com/kipcole9/image – New image-processing library called Image that leverages libvips though NIF bindings. https://github.com/libvips/libvips https://github.com/lucasvegi/Elixir-Code-Smells – Elixir Code Smells project https://github.com/lucasvegi/Elixir-Code-Smells/blob/main/code_smells.livemd – Elixir Code Smells Livebook notebook https://litestream.io/ – Litestream project for SQLite replication https://fly.io/blog/all-in-on-sqlite-litestream/ – Ben Johnson joined Fly.io and will continue work on Litestream David's wife had a baby girl! Congrats! Now has 2 kids. Next episode is 100 and will be the final visit José Valim in our series. Also covers future development. Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://github.com/NFIBrokerage/slipstream – Slipstream Phoenix channels websocket client library https://github.com/NFIBrokerage/mint_web_socket – Separate library that uses Mint and supports websockets. https://github.com/NFIBrokerage/slipstream/blob/main/guides/implementation.md https://github.com/Azolo/websockex – Pure Elixir websockets implemented as a special OTP process https://github.com/ninenines/gun – Popular Erlang HTTP/WebSocket client library from the same group of dependencies as cowboy, the underlying HTTP/WebSocket server for Phoenix https://github.com/jeremyong/websocket_client – WebSocket client that underlies phoneix_client and phoenix_gen_socket_client. Appears to be inactive and it no longer compiles on OTP25. https://hex.pm/packages/phoenix_channel_client – Retired library by Justin Schneck https://hex.pm/packages/phoenix_client – by Justin Schneck “Elixir Phoenix Client for Channels” https://github.com/J0/phoenix_gen_socket_client – Another Phoenix Channel client https://elixirforum.com/t/slipstream-a-slick-elixir-websocket-client-for-phoenix-channels/37456 – ElixirForum post on Slipstream https://github.com/nerves-hub/nerves_hub_link – A more prominent dependent of Slipstream. Slipstream is used as the default communication system for embedded devices to talk to the nerves hub (which provides firmware updates) https://twitter.com/whatyouhide/status/1521381183229210624 – mint_web_socket was just moved under the elixir-mint organization https://twitter.com/josevalim/status/1521390714025758720 – Jose Valim recently credited NFIBrokerage for bringing even more contributions to the Elixir community https://helix-editor.com/ https://clojure.org/ https://github.com/NFIBrokerage https://www.eventstore.com/eventstoredb https://github.com/elixir-mint/mint https://github.com/elixir-lang/gen_stage https://grpc.io/ https://github.com/tree-sitter/tree-sitter https://github.com/elixir-lang/tree-sitter-elixir https://elixir-lang.org/tree-sitter-elixir/ https://github.com/jonatanklosko – Jonatan Kłosko did the majority of the work on the Elixir Tree-Sitter library https://github.com/gleam-lang/tree-sitter-gleam/ https://github.com/ninenines/gun https://github.com/Azolo/websockex https://hex.pm/packages/phoenix_client https://github.com/nerves-hub/nerves_hub_link https://en.wikipedia.org/wiki/HTTP/2 https://github.com/NFIBrokerage/spear Guest Information https://github.com/the-mikedavis – on Github https://github.com/NFIBrokerage – Work Github organization Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
May 10, 2022 • 47min

98: Elixir in the iOS App Store with Dominic Letz

Dominic Letz did something I thought was impossible. He got an Elixir application packaged up, approved, and available through the Apple App Store on iOS devices. The application runs Elixir on the device, creates a web view, and hosts Phoenix LiveView pages. They went further and created a bridge to integrate with more of the platform specific features of the device. Is Android your preferred platform? They have it running there as well and in the Google Play Store. We talk about how it works, challenges overcome, and where it is now. They also created several Github projects that show how to do this yourself to create a cross-platform desktop application and apps for Apple and Android mobile devices. Very cool! They want your help to make it even better. Show Notes online - http://podcast.thinkingelixir.com/98 Elixir Community News https://twitter.com/whatyouhide/status/1521381183229210624 – Mint now has an official WebSocket client https://github.com/elixir-mint/mint_web_socket https://github.com/NFIBrokerage https://github.com/NFIBrokerage/slipstream https://twitter.com/josevalim/status/1519377962063249409 – José Valim announced Dashbit is sponsoring part-time development of sonic_pi for the next 6 months https://sonic-pi.net/ – Sonic Pi website https://github.com/sonic-pi-net/sonic-pi – Sonic Pi project https://github.blog/2022-04-29-bringing-code-navigation-to-communities/ – Github gave Elixir another shout-out in a recent blog post “Bringing code navigation to communities”. https://twitter.com/josevalim/status/1519630932583632897 – The Nx project reaches two major milestones at the same time. https://github.com/elixir-nx/nx https://hex.pm/packages/exla – EXLA package now on Hex.pm https://hex.pm/packages/torchx – Torchx package now on Hex.pm https://twitter.com/robertoaloi/status/1520395745064542209 – WhatsApp's Erlang implementation of the Raft consensus algorithm is now open source https://github.com/WhatsApp/waraft – WARaft is a Raft library in Erlang by WhatsApp. It provides an Erlang implementation to obtain consensus among replicated state machines. Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://apps.apple.com/us/app/diode-drive/id1605222443 – Diode Drive iOS app https://play.google.com/store/apps/details?id=io.diode.drive – Google Play listing https://github.com/elixir-desktop/desktop https://github.com/elixir-desktop/ios-example-app – iOS example app https://github.com/elixir-desktop/android-example-app – Android example app https://github.com/elixir-desktop/runtimes – Prepared runtimes for android and iOS devices. https://github.com/elixir-desktop/bridge – Used by “desktop” - does native integrations https://podcast.thinkingelixir.com/69 – Previous interview - episode 69 https://diode.io/diode%20drive/self-custody-for-data-22032/ – Why you should care about Self-Custody for data now https://github.com/couchbaselabs/iErl14 https://podcast.thinkingelixir.com/81 – Elixir in a Burrito with Quinn and Digit https://www.wxwidgets.org/ Guest Information https://twitter.com/DominicLetz – on Twitter https://github.com/dominicletz/ – on Github https://diode.io/ – Diode.io website https://github.com/diodechain – Diode Github organization Elixir Slack's desktop channel Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!
undefined
May 3, 2022 • 49min

97: Avro and Elixir with Dave Lucia

Dave Lucia released version 2.0 of AvroEx, an Elixir library for working with Avro protocols and schemas. To understand Avro, we need an overview of the whole Kafka-centric flow! He gives us a taste of the Enterprise soup of JVM tools used for populating data lakes, all for the business benefit of data analysis and machine learning. We may work on Elixir systems that are tasked with hooking into this other Enterprise-y world and getting an overview of the pieces and awareness of the tools available can really help out! Dave also shares his goal of creating a new Markdown parser for Elixir and updates us on the next chapter of his professional journey. Show Notes online - http://podcast.thinkingelixir.com/97 Elixir Community News https://twitter.com/wojtekmach/status/1516533938977705990 – Wojtek Mach shared some additional reasons for using NIFs to work with Rust or Zig that aren't performance related. https://twitter.com/atyborska93/status/1516773412848422919 – Angelika Tyborska shared that the Elixir track on Exercism.io got two new fun practice exercises http://exercism.org/tracks/elixir/exercises/killer-sudoku-helper – Exercism.io Elixir puzzle - Killer Sudoku Helper https://exercism.org/tracks/elixir/exercises/state-of-tic-tac-toe – Exercism.io Elixir puzzle - State of Tic Tac Toe https://gleam.run/news/v0.21-introducing-the-gleam-language-server/ – Gleam now has a language server https://twitter.com/cigrainger/status/1518896955921154048 – Nx Explorer project reaches a new milestone and was released to Hex. https://hexdocs.pm/explorer/exploring_explorer.html – Includes a “Ten Minutes to Explorer” Livebook guide https://twitter.com/MozillaHubs/status/1516469058849312768 – Mozilla hiring for a Senior Elixir Engineer to help work on their Hubs Team to help build open social spaces for the web. https://hubs.mozilla.com/ https://github.com/mozilla/hubs https://github.com/mozilla/reticulum https://elixir-lang.org/blog/2021/06/02/social-virtual-spaces-with-elixir-at-mozilla – Elixir blog post from a year ago about the Mozilla Hubs Elixir project. https://github.com/elixir-makeup/makeup_diff – Parker Selbert created makeup_diff for displaying diff markup in ExDocs https://www.erlang.org/blog/type-based-optimizations-in-the-jit/ – Blog post on the Erlang blog looked interesting. About OTP 25 type optimizations for the JIT compiler. https://codesync.global/conferences/code-beam-sto-2022/#schedule – CodeBeam in Stockholm Sweden speaker lineup and schedule are out. https://www.empex.co/mtn – Empex MTN in Salt Lake City on May 6 https://www.elixirconf.eu/ – ElixirConf EU in London on June 9-10 https://elixirconf.com/events – ElixirConf US in Colorado on August 30-Sep2 Do you have some Elixir news to share? Tell us at @ThinkingElixir or email at show@thinkingelixir.com Discussion Resources https://davelucia.com/blog/avro-2.0 https://github.com/beam-community/avro_ex https://avro.apache.org/ https://kafka.apache.org/ https://podcast.thinkingelixir.com/75 – Previous discussion https://www.bloomberg.com/professional/solution/bloomberg-terminal/ https://theoutline.com/ https://elm-lang.org/ https://developers.google.com/protocol-buffers/ https://thrift.apache.org/ https://github.com/klarna/erlavro https://databricks.com/ https://spark.apache.org/ https://en.wikipedia.org/wiki/Extract,_transform,_load https://databricks.com/glossary/what-is-parquet https://www.snowflake.com/workloads/data-lake/ https://github.com/beam-community https://github.com/doomspork https://github.com/surface-ui/surface https://github.com/pragdave/earmark https://github.com/pragdave https://github.com/davydog187/marx https://www.youtube.com/watch?v=dmBdFh5N1g4 – Migrating from Kafka to RabbitMQ at SimpleBet - Why and How https://twitter.com/davydog187/status/1512393866653011968 – Announced leaving SimpleBet and co-founding something new. https://twitter.com/davydog187/status/1512393877575110668 – Co-Founding Bitfo as the CTO. https://www.bitfo.com/ https://ethereumprice.org/ https://www.bitcoinprice.com/ https://defirate.com/ Guest Information https://twitter.com/davydog187 – on Twitter https://github.com/davydog187/ – on Github https://davelucia.com – Blog Find us online Message the show - @ThinkingElixir Email the show - show@thinkingelixir.com Mark Ericksen - @brainlid David Bernheisel - @bernheisel Cade Ward - @cadebward Sponsored By:Fly.io: Fly.io is a great place to deploy your next Phoenix application! Check them out!

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app