In episode 13 of Thinking Elixir, we talk with Jesse Herrick about creating a video chat app using WebRTC and Phoenix LiveView. We cover the WebRTC protocol, discuss a number of helpful resources, learn how Phoenix helps accomplish the goal, discuss the JS hooks, pushing events from the server and much more!
Wrapping up our adventure in prototyping a play queue in Phoenix LiveView by adding group by album view, selection, deletion, and applying a bit more style to the result.
Yesterday I published my first hex package! A decorator macro that lets you add an OpenTelemetry trace to a function, (and specify span name and attributes) with one line of code. For example:
@decorate trace("add", [:a, :b, :result]) def add(a, b), do: a + b
Putting a string in a tight DB or SFDC field may end up not exactly how expected. Going a bit beyond the standard way of slicing strings in Elixir: https://medium.com/@adworse/the-curious-case-of-string-slice-3-de081c021e41
Deploying Elixir apps using Phoenix can be difficult, especially if you are used to ruby git push deploys. Here’s how I used Ansible to deploy a Elixir app using Phoenix on a AWS EC2 instance via Dokku. http://mikebian.co/using-ansible-to-deploy-elixir-applications-on-dokku/
Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s4e17-winn/
About two years ago I did the first episode of a screencast called Beware of the Software. A couple of days later, I burned out and it was put on a pile of “things to handle later”.
I now feel confident enough to say the second episode is here: https://mendes.codes/blog/two-years-ago-i-did-a-screencast
Starting 0.13 you can have an explicit split between schema reader and schema writer.
This means that you don’t need to have local files with schemas if you would like to rely only on the schemas already registered in the registry.
config :avrora, # ... registry_schemas_autoreg: false
If you disable auto registration and have schema registry configured, two major behavior changes will happen:
- Local files will be completely ignored for schema resolution
- For encoding and decoding, the schema will be retrieved from the registry (see n.1)
For the case when the schema registry is not configured – behavior should remain the same 😉
Avrora.Encoder module gets some attention and was refactored. It was split into several submodules which implement the same behavior. It allows code to be reused and well tested separately. But everything comes at a cost, hopefully pros and cons should balance each other.
Happy coding everyone and any feedback is welcome 🤗
Follow along in beginning to create an Array data structure built on tuples, and learn about the Enumerable protocol.
In episode 12 of Thinking Elixir, we catch up with Connor Rigby and learn about his recent Flutter work for Nerves. We take this opportunity to get his perspective on when to choose NIFs or Ports for native integrations, how to make NIFs more portable, get a recommendation for multimedia processing and much more!
This time we went deep into JS / LiveView interop, implemented track position scrubbing, and added intelligent play queue auto-scroll behavior, that shows the currently playing track on the top of the queue, if user doesn’t scroll to a different place manually.
TL/DR: The last time we looked at this code, we wrote property tests. The property tests used generators to create input, but the actually testing of the invariants was just regular Elixir code. In this post, we’ll look at rewriting those property tests as standard ExUnit tests, giving us better unit tests. Link: https://medium.com/perplexinomicon-of-philosodad/preparing-to-refactor-with-better-unit-tests-51e27659fe5e
7th video in the series about building cryptocurrency trading bot in Elixir - this time we will build a BinanceMock application
We will create a new application called BinanceMock. It will have the same functionality as the Binance module so we will be able to use them interchangeably. In the future episode(s) the BinanceMock will become a foundation to allow us to perform backtesting. Besides creating the application itself, we will also modify the leader and the trader to reference the config to figure out which client to use instead of the previously hardcoded Binance module.
There are some nice new features coming in Elixir 1.11, and one many folks are excited about are some new compile-time checks. The one I’ve heard the most excitment about is the the compile-time check for non-existent fields in structs. But, I’ve got some concerns about how folks might use this and how it might change application design.