Thinking Elixir 174: DockYard's BeaconCMS
Episode 174 of Thinking Elixir. The Elixir community has a new OpenSource CMS thanks to DockYard and Leandro Pereira! We talk with Leandro to better understand what the Beacon project is and what it can do. It’s built using Phoenix LiveView and can be deployed standalone or as part of an existing Elixir Phoenix application. The Admin features include the ability for non-developers to edit content and immediately deploy changes without re-deploying the app. We talk about how BeaconCMS is positioned against Wordpress and static sites and where the greatest benefits are. A feature in development is the HEEx template editor which promises to be a very exciting tool for non-developers. Learn along with us!
How To Use Zig for Elixir NIFs
Find out how to set up Zig for Elixir NIFs and integrate a NIF into an Elixir application: https://blog.appsignal.com/2023/10/24/how-to-use-zig-for-elixir-nifs.html
ChatGPT doesn't know what day it is?
Turns out ChatGPT doesn’t know anything about the date or day of the week! When that’s needed for your application, how can we solve it? See how we can make our AI apps more useful when they are date aware!
https://fly.io/phoenix-files/chatgpt-doesnt-know-what-day-it-is/
Elixir Bun v 0.1.4
This new version includes a logo, README improvements for the initial setup, a fix to avoid leaving zombie Bun processes after closing the parent Elixir application and an update to Bun 1.0.7.
Tesla Middleware for Logging Requests in Curl
A stable version for tesla_curl is now on Hex and ready for use in your project!
tesla_curl is a middleware for the Tesla HTTP library that will log requests in curl syntax for quick debugging, and even allows for scrubbing sensitive values from your logs if needed.
Testing Async Assigns and Testing LiveView Updated to 0.20!
My Testing LiveView course is now fully updated to use LiveView 0.20!
As part of that work, I’ve added a new lesson on Testing Async Assigns! 🤩
I love the work the Phoenix team has done with async assigns, so I wanted to make sure the course included a lesson on how to test that. Thankfully, the Phoenix team made it a breeze!
You can catch a preview of the lesson in Elixir Streams or get the full course here 👉 Testing LiveView 👀
Thinking Elixir 173: Web App Security Best Practices and Sobelow
Episode 173 of Thinking Elixir. We delve into the tricky world of cybersecurity with our guest, Michael Lubas. We touch on the widely-discussed 23andMe data breach, discussing what went wrong and how it applies to Elixir apps. A significant part of our talk is centered around the informative guide by the EEF Security Working Group called “Web Application Security Best Practices for BEAM languages.” An essential tool featured in our discussion is Sobelow, a security-focused static code analysis tool invaluable in warding off potential security breaches. We wrap up the conversation by discussing the practical application of these tools, using Paraxial.io’s vulnerable-by-design “Potion Shop” app as a case study to run Sobelow and practice fixing issues. Join us for an enlightening discussion packed full of important insights!
Created my Personal AI Fitness Trainer in 2 Days
In a 2 day spike, I created my own Elixir-based AI Personal Fitness Trainer! The surprising part for me was how useful and helpful I found it. It helps you create a weekly workout plan in line with your goals. Information about you is stored in a local SQLite database. Report on your workouts to your assistant and they log it for you. The assistant can access your stored information and historical workout logs to answer questions and help you on your personal fitness journey! 💪 I put it all into the Elixir LangChain Demo project so you can run it locally yourself! Poke at the code, customize your own fitness trainer to work the way you want! Here’s a write-up and overview of how it works along with links to the project.
https://fly.io/phoenix-files/created-my-personal-ai-fitness-trainer-in-2-days/
Vim and Emacs key bindings - Livebook Launch Week 2
We’re excited to announce that now you can use Vim and Emacs key bindings while coding in Livebook.
From now on, you can bring your Vim/Emacs muscle memory to Livebook. 😉
https://news.livebook.dev/vim-and-emacs-key-bindings—launch-week-2—day-5-VfcA0
Integration with SnowFlake and Microsoft SQL Server - Livebook Launch Week 2
Today’s announcement is about our two new database integrations: Snowflake and SQL Server.
Together with those new ones, Livebook now comes with built-in integrations for seven databases and data warehouses:
- PostgreSQL
- MySQL
- SQL Server
- SQLite
- Google BigQuery
- Amazon Athena
- Snowflake
One interesting implementation detail is that the integration with Snowflake uses ADBC (Arrow Database Connectivity)
Read the blog post and watch the demos.
ETL with Oban
New blog post exploring ETL with Oban. https://revelry.co/insights/development/elixir/exploring-etl-with-oban/
Introducing File Integration - Livebook Launch Week 2
Today, we’re excited to announce Livebook v0.11’s most prominent feature, file integration.
Although file integration may not sound exciting at first glance, bear with us; we have some elegant features to show.
Imagine code generation when you drag and drop a file based on the file type. Or quickly do a lazy reading of a multiple gigabyte parquet file stored in S3. That’s what we’re talking about! :sunglasses:
Read the blog post and/or watch the video where José Valim shows a demo of what this feature can do.
Hammer
In episode 172 we use Hammer to add rate-limiting to JSON API built with Phoenix.
https://elixircasts.io/rate-limiting-a-phoenix-api-with-hammer
Thinking Elixir News 172
Episode 172 of Thinking Elixir. The latest news features a compelling blog post on the Dashbit blog focusing on the advances in Machine Learning with Elixir, intriguing tips on how to get the most out of ExDocs for offline browsing, and using a new Phoenix LiveView 0.20.x feature. Additionally, a transition story from Serverless to Elixir, resulting in significant cost savings, got attention and was shared by “Prime Reacts”, further spreading Elixir awareness. With more exciting announcements around ElixirConf 2023 Videos and the opening of proposals for CodeBEAM America 2024 and more!
Elixir Streams |> LiveView's Async Assigns
LiveView 0.20 ships with async assigns! 🥳
I tested them and they’re a breeze to use 😎
Check out this short intro on how to use assign_async/3
Speech-to-text with Whisper: timestamping, streaming, and parallelism, oh-my! - Launch Week 2
Thanks to advancements in the overall Numerical Elixir ecosystem, Livebook v0.11 includes a highly improved integration with Whisper.
Today is about the improved integration with Whisper, using Livebook’s Neural Network Smart cell.
New features:
- Timestamping
- Streaming
- Parallelism
Validate Data in a Phoenix Application for Elixir
In the first of a two-part series, we’ll explore how to avoid bad data and validate data at the boundary of a Phoenix application: https://blog.appsignal.com/2023/10/10/validate-data-in-a-phoenix-application-for-elixir.html
Permit - authorization library for Elixir, Ecto, Phoenix, LiveView
Permission-based authorization is a universal and flexible authorization model practically applicable in many applications. Permit was made out of the need to make permission management in Elixir applications more efficient and consistent. Introducing the new library from Curiosum, Michal in his latest post outlines the way the new library works and helps developers plug in resource preloading and authorization easily into Phoenix controllers and LiveViews.
Remote execution Smart cell - Livebook Launch Week 2
Our 2º Launch Week has just started!
Today is about our newest built-in Smart cell: Remote execution.
It comes with the following features:
- generates boilerplate code for connecting a Livebook notebook to another Elixir node
- stores the remote node’s cookie as a Livebook secret
- autocompletion and docs preview of the modules defined in the remote node
https://news.livebook.dev/remote-execution-smart-cell—launch-week-2—day-1-m3dv2