Siblings → `multi_call/2` and `multi_transition/3`
Siblings
v0.4.0
has been released.
Added Siblings.multi_call/2
and Siblings.multi_transition/3
to operate on all the dynamic children.
The Titanic Machine Learning Problem in Elixir
Elixir’s machine learning suite is still relatively new, but it stands as a viable alternative to a lot of the more established tools in the Python ecosystem. Follow along as I build a neural network using nx and axon to work through the famous Kaggle Competition “Titanic - Machine Learning from Disaster” and visualize the results in livebook:
https://ryancurtin.com/posts/titanic-machine-learning-in-elixir/
Using Elixir Telemetry and Tesla
Tesla provides a Telemetry middleware which is pretty straightforward to configure for your clients. It is possible to extend the middleware behaviour and group metrics by host, method or path.
This post will show how to setup Telemetry with Tesla and path grouping: https://felipeelias.github.io/elixir/2022/08/03/elixir-telemetry-and-tesla.html
PlugLimit - rate limiting library based on Redis Lua scripting
PlugLimit is using Redis Lua scripting to provide rate-limiting functionality for web applications based on a Plug library. Salient Redis Lua scripting feature is a race conditions resiliency which makes it a recommended solution for distributed systems (e.g.: Phoenix servers swarm behind a round robin load-balancer).
PlugLimit provides two built-in rate limiters: fixed window and token bucket. Custom rate limiters can easily be added as a user defined Redis Lua scripts.
Health status without log request
Sometimes our application collects more logs than we would expect. Especially in the case of endpoints responsible for the server status. Thanks to a simple plug, you can inform about the system state all the time without logging this request.
More on: https://bartoszgorka.com/health-status-without-log-request
Bot Defense with Paraxial.io - ElixirCasts
In this week’s ElixirCast, learn how to defend your Phoenix app against bot attacks in minutes with Paraxial.io!
ThinkingElixir 110: The End of Localhost Development?
Some people excitedly talk about the “end of localhost development” when developer machines move to the cloud. Presumably this is better because our environments, infrastructure and projects are so complex that they need this additional layer of abstraction just to keep teams productive. Is this our inevitable future? Or is this trying to solve the wrong problem? We talk about what we think this movement is about and how it relates to us. Elixir projects can potentially be much simpler with fewer external dependencies making this move to the cloud less compelling. Join us as we contemplate how Elixir and Phoenix might fare in a world with no “localhost development”.
IntelliJ Elixir v13.2.0
Changelog
v13.2.0
Enhancements
-
Rendered Markdown toggle for
@moduledoc
,@typedoc
, and@doc
-
Inject markdown in
@doc deprecated: …
- Inject Markdown into doc lines and heredocs
-
Ignore
false
for documentation module attributes -
Ignore
@doc
metadata that can’t include Markdown-
guard: …
-
since: …
-
-
Ignore
@callback(unquote(spec))
when trying to find typespecs -
Interleave Markdown and Elixir for doctests
- Mark code blocks as Elixir language in Markdown documentation
- Mark multi-line exceptions in doctests as Markdown
- Treat DBG prefix doctest lines as Markdown instead of Elixir
- Resolve owner of docs as following call definition clause.
-
Count
…>
as Markdown since it’s not Elixir syntax -
Count
** (…
as Markdown since it’s not Elixir syntax for exception in iex prompts -
Count
iex>
as Markdown since it’s not Elixir syntax
-
Documentation links in rendered documentation
-
Modulars
MODULE
-
Callbacks
-
Relative (
c:NAME/ARITY
) -
Absolute (
c:MODULE.NAME/ARITY
)
-
Relative (
-
Types
-
Relative (
t:NAME/ARITY
) -
Absolute (
t:MODULE.NAME/ARITY
)
-
Relative (
-
Functions and Macros
-
Relative (
NAME/ARITY
) -
Absolute (
MODULE.NAME/ARITY
)
-
Relative (
-
Modulars
-
Inject markdown in
-
Quick Documentation for more elements
-
Callbacks (
@doc
above@callback
and@macrocallback
) -
Types (
@typedoc
above@type
,@typep
, and@opaque
)
-
Callbacks (
- Compatibility with IntelliJ 2022.2.
- Updated Elixir version used in tests.
- Updated Gradle dependencies.
Bug Fixes
- Add compiled CallDefinitionImpl delegation targets to resolve results
- Log non-Call modulars for resolving delegation
-
Fix operator token set for
**
.
Introducing the Livebook desktop app
The Livebook desktop app was just launched. Now one can install Livebook on their machine without having Elixir installed before.
Building a Cloud Shell Leveraging Elixir
Elixir turned out to be an awesome solution for this sort of product for two reasons. It made creating a purpose-built WebSocket API a joyful experience. It also allowed us to leverage its unique binary handling capabilities to handle a goofy protocol easily and present it in a Javascript digestible format to our browser clients. Check out our code here: https://github.com/pluralsh/plural How we built it: https://www.plural.sh/blog/how-we-created-an-in-browser-kubernetes-experience/
Rauversion: An open source Souncloud made with Phoenix/LiveView
Rauversion is an open source platform to build communities of musicians, podcasters and listeners. The Stack is Elixir Phoenix & LiveView.
Check it out, and if you like it, please give us a star on Github 🍻 https://github.com/rauversion/rauversion-phx
ThinkingElixir 109: Digitally Processing Signals with NxSignal
In episode 109 of Thinking Elixir, we talk about a new library in the Nx ecosystem under active development called NxSignal by Paulo Valente. We talk with Paulo to learn what a DSP (Digital Signal Processor) is, how it works, and touch on the kinds of problems it can solve. We learn about his involvement in Nx, where the library is going, and some unusual ways he’s applied it. He also shares how he’s using Nx Explorer on production to clean up and process financial data returned in a JSON API and much more!
How to Write a Functor in Elixir
Learn all about functors and their benefits, then create a protocol for functors in Elixir. https://blog.appsignal.com/2022/07/26/how-to-write-a-functor-in-elixir.html
Elixir Meetup #7 hosted by Curiosum ▶ Szymon Soppa ▶ Perfecting local and remote Elixir CI pipeline
The cost of developer time is expensive, you don’t want to waste it! One of our goals in a day-to-day development is to optimize things, and that’s exactly what we should do to our CI’s to reduce badly spent developer time and engage him in something more productive.
In this talk I’ll guide you through some steps we implemented in CI at Curiosum, as well as propose a local CI setup that can be shared across your team. In short: check as much as possible in automated way, and do not waste a time on things you don’t have to in Code Review and daily development.
Elixir Meetup #7 hosted by Curiosum ▶ Szymon Soppa ▶ Perfecting local and remote Elixir CI pipeline
Paraxial.io Getting Started Guide
Paraxial.io protects your Phoenix application from malicious bots. Similar products are reCaptcha and Cloudflare, neither of which are designed for Elixir. Bots are the cause of security incidents such as credential stuffing, credit card fraud, and email spam, causing major problems for application owners.
Starting today, the Paraxial.io beta is open to new users, no invitation necessary. We have published a detailed guide that walks you through how to protect your Phoenix application with Paraxial, via a simple mix
dependency.
Setup VS Code for Elixir Development
I was setting up a new laptop for Elixir development and I opted for “the clean install” approach. Getting VS Code all setup and configured took a bit of tweaking! I wrote up what I learned and the final needed bits into a recipe. Please feel free to share with people new to Elixir and Phoenix development so they can have a smoother experience.
https://fly.io/phoenix-files/setup-vscode-for-elixir-development/
LiveView Authentication Part 2
Part 2 of adding authentication to Phoenix LiveView.
https://elixircasts.io/phoenix-liveview-authentication-part-2
ThinkingElixir 108: Stack Overflow Survey Results 2022
In episode 108 of Thinking Elixir, we were surprised to see how well Elixir and Phoenix performed in the Stack Overflow survey results for 2022! Elixir came in as the #2 most loved language and Phoenix as the #1 most loved framework! And this was their first year appearing as official choices in the survey! We discuss what it means, what we can learn from it, how it compares to other languages and frameworks and what it may indicate for the future. We also discuss ideas to help support and grow the community.
Writing Predictable Elixir Code with Reducers
Let’s see how code predictability plays a crucial role in a project’s short and long-term health. We will use Elixir’s built-in features for this, like the pipe operator, tuples, and with
blocks.
https://blog.appsignal.com/2022/07/19/writing-predictable-elixir-code-with-reducers.html