Probuild-ex : Create a league of legends pro players build trackers with elixir Part 4
Third part of a series to create a probuild tracker for the game league of legends. Together we will build probuild-ex using elixir, phoenix, liveview and friends.
ExUnion - Tagged Unions for Elixir. Just that.
ExUnion
is meant to be a lightweight, elixir-y implementation of tagged unions (also called variant, discriminated union, sum type, etc.).
While conventionally Elixir tends to promote using tuples to model tagged unions - the {:ok, …} | {:error, …}
pattern being a good example of that - this approach arguably lacks expressiveness, especially when modeling non-trivial unions. An alternative is to employ structs to model the individual cases of a tagged union, which works nicely but has the disadvantage of requiring significant boilerplate code.
ExUnion
attempts to bridge this gap by generating the necessary boilerplate (and a bit more) through a concise albeit opinionated DSL.
Search millions of usernames efficiently with Ecto
How can you efficiently search through millions of usernames using Ecto? This blog post takes a deep-dive into Postgres’ ILIKE and SIMILARITY operators and their dangerous caveats.
https://www.peterullrich.com/efficient-name-search-with-postgres-and-ecto
Como mockar integrações com bypass | Testando com Elixir
Como testar integrações de terceiros com bypass. https://youtu.be/lzQp1cAgdSk
Building Embedded Systems in the Modern Era
Is your company starting an embedded systems project? You should consider Elixir as your platform of choice, and share this with your team.
https://binarynoggin.com/blog/building-embedded-systems-in-the-modern-era/
What's new in Livebook 0.7
Livebook 0.7 is out! This release has cool new features, like:
- secret management
- visualizing message-passing between Elixir processes
- an interactive UI for Elixir pipelines.
Elixir & Phoenix Fundamentals Full Course For Beginners
Learn the basics of the functional programming language Elixir, and how to build simple web applications with the Phoenix framework from scratch with this video crash course.
Probuild-ex : Create a league of legends pro players build trackers with elixir Part 3
Third part of a series to create a probuild tracker for the game league of legends. Together we will build probuild-ex using elixir, phoenix, liveview and friends.
ThinkingElixir 120: Localize and Personalize Your Elixir Apps
Episode 120 of Thinking Elixir. Localizing and personalizing an application is separate from the language used in the interface. Kip Cole explains how the mismatch of computers with the culture of our audience creates friction we may not even be aware of. In fact, our benign app may be unintentionally offensive to millions of people! Kip created the libraries ex_cldr, money and tempo to help Elixir developers localize applications in a culture aware way. What does that mean? It means using minimal information we can infer how names should appear, how numbers are represented, the assumed numeric rounding rules, first day of the week, the calendar being used, and more!
Phoenix LiveView 0.18: New Special HTML Attributes
Let’s check out Phoenix LiveView 0.18’s new special HTML attributes to help you write cleaner HTML. https://blog.appsignal.com/2022/10/11/phoenix-liveview-018-new-special-html-attributes.html
Cursor Based Pagination
Episode 152: Cursor Based Pagination with Paginator
https://elixircasts.io/cursor-based-pagination-with-paginator
Plucking the "A" from PETAL
This post asks if we can remove Alpine from the PETAL stack. Can we do everything we need with just LiveView? Also, let’s explore an area where LiveView can still improve.
Chat Bots as UI from ElixirConf Africa 2022
For people that want Chat Bots with Elixir, or experimental talk presentations and video production. https://www.youtube.com/watch?v=DFGHaER6_j4
Prevent double-bookings with Exclusion Constraints in Postgres using Ecto
Exclusion constraints in Postgres can efficiently detect overlapping bookings, appointments, and schedules and block their creation. This blog post explains how to implement them using Ecto.
https://www.peterullrich.com/prevent-overlapping-schedules-with-ecto-and-postgres
Adding Elixir to Erlang via Rebar3
Adding Elixir to Erlang via Rebar3 - https://itnext.io/adding-elixir-to-erlang-via-rebar3-2ad83476b627
IntelliJ Elixir v13.2.1
Changelog
v13.2.1
Bug Fixes
-
Ignore
PsiErrorElement
when collecting doc comments. - Fix README typos.
- Log before and after setting mirror for decompiled files. Parsing complex decompiles can freeze the IDE. Logging before parsing the decompiles will give a chance of finding the file and recovering the decompiled code to find the error or complexity that needs to be suppressed.
-
Use
Options.truncateDecompiledBodyz on Elixir decompiled bodies too. Previously, this was only used for Erlang functions. Fixes parsing decompiled code causing freezes for some files. * Ignore
authors: …for documentation when injecting Markdown. * Stop
prependQualifierswhen reaching a qualified bracket operation (
Alias.function[key]). * Skip
-1and other unary operations when resolving types. * Ignore maps at the root of files when collecting doc comments. * Return
emptySequencefrom
childExpressionswhen
PsiElementhas no
firstChildor
lastChild. * Don’t descend inside struct literal when resolving types. * Ignore injecting Markdown in calls that read the text from a file, such as in
@moduledoc File.read!(Path.join([DIR, “..”, “README.md”]))* Ignore undocumented script code at root of files. * Alias used in qualified call. * Integers * Floats * Tuples * Stop
ancestorTypeSpecon
QualifiedMultipleAliases. * Ignore pipelines for injecting Markdown in doc comments. * Ignore useless
warn_missingin
edeliver‘s
distillery` dep. * Stop accumulating qualifiers when bracket operation is hit either as qualifier or argument. Installation Instructions
Doing expensive things only once in Elixir
A simple solution to the stampeding herd problem and a library that wraps it up: https://dev.to/palm86/doing-things-only-once-in-elixir-4hdg
Expose GraphQL operation in logs with Absinthe
We always use named operations in our GraphQL requests, so we thought it would be a good idea to include the operation name in logs so instead of:
20:33:56.107 request_id=… [info] POST /graphql
20:33:56.239 request_id=… [info] Sent 200 in 84ms
We have
20:33:56.107 request_id=… [info] POST /graphql
20:33:56.239 request_id=… graphql_operation_name=UserProfile [info] Sent 200 in 84ms
We used Absinthe’s powerful middleware feature to achieve this: https://craft.mirego.com/2022-10-06-expose-graphql-operation-in-logs-with-absinthe
Elixir vs Cybersecurity - is Elixir Language a Safe Technology?
In this post, I will introduce you to the world of cybersecurity and tell you how Elixir programming language works in this environment. https://curiosum.com/blog/elixir-cybersecurity-safe-technology