Blog post: How to Add daisyUI to Your Elixir + Phoenix Project (And Why You Should!)
A blog post with a brief introduction to daisyUI and its features, and how you can integrate it into your Phoenix project with just a few lines of code!
GenServer.reply: Don't Call Us, We'll Call You
A blog post on using :noreply
and GenServer.reply
to allow a GenServer to continue working even while its callers wait for the result of long-running operations.
https://blog.sequin.io/genserver-reply-dont-call-us-well-call-you/
Blog post: Using the OpenAI Functions API to estimate story points
I love using LiveBook to prepare my blog posts! It’s great to have the code, prose, and visualizations all in one place. While working on this one, I used a simple filesystem cache to avoid unnecessary re-evaluation in cells that were expensive in terms of time and OpenAI credits… I’ll have to share that tip in a future post.
https://revelry.co/insights/artificial-intelligence/openai-functions-api-to-estimate-story-points/
New Video on Tasks
New video from Bruce Tate in the updated OTP course. Tasks are short-lived GenServers our code can spin up to handle intermediate jobs concurrently. These genservers don’t hold state indefinitely or process loops. Instead, they do a concurrent job and return a result. https://youtu.be/O0JxVTqVV9w
How You Can Help Build the Elixir Development Community, Even if You Don't Use it at Work
This is a fantastic article written by our Launch Scout team member and Principal Engineer, Andrew Ek about supporting and building the Elixir community. https://launchscout.com/blog/supporting-elixir-or-other-communities
Add a Form to a Modal in Phoenix 1.7
In part one of this series, we introduced the core generated components when bootstrapping a new Phoenix project. We used a button and a modal from the core components to lay the groundwork for a “create modal”.
In this post, we will put a form onto the modal and create pets.
https://blog.appsignal.com/2023/08/01/add-a-form-to-a-modal-in-phoenix-1-7.html
Infinite scroll with LiveView's `phx-viewport-bottom`
LiveView 0.19 added phx-viewport-top
and phx-viewport-bottom
to help with infinite scroll
Just tested it and was amazed that a one line change allowed me to remove my entire InfiniteScroll JS hook! 🤯
Check it out! 👇
Thinking Elixir 162: Elixir to WebAssembly with Orb
Episode 162 of Thinking Elixir. WebAssembly is an interesting technology that feels completely separate from Elixir. Patrick Smith created an Elixir project called Orb, an Elixir DSL for WebAssembly. He also shows how a WebAssembly component can play a meaningful role in a LiveView page! We talk more about what WebAssembly is, the promise for the technology, how it can improve UX, and where Patrick sees real practical applications for Elixir developers.
Blog post: Sorting and Deleting many-to-many assocs with Ecto and LiveView
Explore how to sort and delete many-to-many associations in Ecto using the powerful :sort_param and :delete_param options from cast_assoc, all with the magic of LiveView. https://fly.io/phoenix-files/cast-assoc-sort-and-delete-options/
EPISODE 54: SEAN MORIARITY AND MACHINE LEARNING
Join the BeamRadio panel for a riveting talk with Sean Moriarity on Elixir and machine learning! https://www.beamrad.io/54
How to help build the Elixir development community
https://launchscout.com/blog/supporting-elixir-or-other-communities
I’ve had a number of conversations with folks who want to help the Elixir community, but who don’t know where to start or feel intimidated by “just make an open source library”. This article provides several concrete things people might try, ranging in size/difficulty from “I can spend 10-15 minutes per week reading and sharing what I learn” to “I can hire Elixir developers!”
Conversational AI: Exploring Product Ideas Leveraging GPT-4 as a Core Component
Curiosity piqued by GPT-4 and its implications for product development? 💡
Check out the blog post that takes you through potential products that could harness GPT-4’s powerful AI capabilities. 🚀 https://curiosum.com/blog/exploring-product-ideas-leveraging-gpt-4-as-a-core-component
ExUnit. It's an app!
I imagine many think ExUnit just does some scripting to run tests.
But it’s actually a full Elixir app! I think that’s awesome 😎
Check it out 👇
Flop Part 1
In episode 167, we’ll use the fantastic Flop library to add pagination and sortable tables to an application.
🎥 Build a real time instagram clone with LiveView!
A lot’s changed since Chris McCord’s fantastic LiveView twitter clone video!
I wanted to showcase what’s happened in LiveView since then, including:
- Live file upload
- Streams
- phx.gen.auth improvements
- LiveView Core Components
See the full video: https://youtu.be/4cnmyQJToKM
Walkthrough of the Adapter Pattern
This blog post discusses a safer way to build the adapter pattern in Elixir applications. It also provides guidance around the when to use and not use the adapter pattern.
https://aaronrenner.io/2023/07/22/elixir-adapter-pattern.html
Thinking Elixir 161: Lexical LS and Elixir Dev UX
Episode 161 of Thinking Elixir. Language Servers underpin the language specific support we rely on in modern code editors. Lately, there have been new efforts in this area in the Elixir community. We talk with Steve Cohen about his project Lexical LS to learn about his new Elixir Language Server, how long he’s been at it, and what it can do today. We learn about some of the technical challenges when creating a tool like this, and why there’s still room for new projects in this area. Steve explains how Lexical LS is architected and that it is a goal to be easy to contribute to and work on the Lexical project itself. Time to give it a try!
A Breakdown of HTTP Clients in Elixir by Andrea Leopardi
Andrea Leopardi (@whatyouhide) breaks down the HTTP clients in Elixir! I personally reach for Finch but I’ve been hearing a lot about Req. Find out the difference and then some! https://andrealeopardi.com/posts/breakdown-of-http-clients-in-elixir/
DoIt - Elixir Command Line Interface Framework
With DoIt you can generate nice CLI tools in Elixir. You have two ways two package your CLI:
- escript: Generate an executable to run in any machine that has Erlang/OTP installed.
- burrito-elixir: Generate a single binary with all dependencies.