ThinkingElixir 097: Avro and Elixir with Dave Lucia
In episode 97 of Thinking Elixir, Dave Lucia released v2.0 of AvroEx, an Elixir library for working with Avro protocols and schemas. To understand Avro, we need an overview of the whole Kafka-centric flow! He gives us a taste of the Enterprise soup of JVM tools used for populating data lakes, all for the business benefit of data analysis and machine learning. We may work on Elixir systems that are tasked with hooking into this other Enterprise-y world and getting an overview of the pieces and awareness of the tools available can really help out! Dave also shares his goal of creating a new Markdown parser for Elixir and updates us on the next chapter of his professional journey.
Parser for Markdown Family
Md, a library to parse markdown and markdown-like syntaxes, has been released.
Fully-customizable syntax, blazingly fast (5× compared to earmark,) opinionated. It does not fully support Commonmark (and it’ll never do,) but it covers the needs of the average user + allows the introduction of custom markdown-like syntax with ease.
▸ https://rocket-science.ru/hacking/2022/05/02/md-customizable-parser
Finitomata :: First Class Documentation
Blogged on how I leveraged ex_doc functionality to draw diagrams in the documentation generated by Finitomata for FSM implementations at zero cost.
▸ https://rocket-science.ru/hacking/2022/04/30/finitomata-ex-docs
Using ExUnit's `start_supervised/2` for better cleanup
In a previous post, I wrote about how we can test a named singleton process in our system. There’s one more improvement we can make for better cleanup – use ExUnit’s start_supervised/2.
✍️ https://www.germanvelasco.com/blog/using-exunit-start-supervised-for-better-cleanup
Adding E2E tests to an Elixir library
If you are interested in how we E2E test Boom we just wrote an article about it
https://www.wyeworks.com/blog/2022/04/21/adding-e2e-tests-to-an-elixir-library/
[Podcast] Elixir Wizards S8E3: Cassidy Williams and Tobi Pfeiffer on Elixir Programming at Remote
The latest episode of Elixir Wizards just hit your feed! Check it out: https://smartlogic.io/podcast/elixir-wizards/s8e3-williams-pfeiffer/
Why I think the dot is not a problem in Elixir
The dot in f.(3) is not a problem for me in Elixir. What do you think?
Why I think the dot is not a problem in Elixir https://dev.to/adolfont/why-i-think-the-dot-is-not-a-problem-in-elixir-1nia
How to deal with DBConnection.ConnectionError?
Witnessing errors connected with database performance is never a pleasant experience. Could you have prepared yourself to handle them? Let’s find out.
https://michaldolata.appunite.com/post/how-to-deal-with-db-connection-connection-error
Ecto.DevLogger v0.2.0 - an alternative logger for development
A small release, which adds a support for :stacktrace option, that was introduced in Ecto 3.8.0.
Links:
Infinite Scroll with LiveView
In episode 143 we’ll look at how we can add Infinite Scroll to a Phoenix LiveView.
Legendary v7.0 - LiveView Content Management!
The content management system in the Legendary boilerplate / framework is now powered by LiveView! This is an enhancement that has been in the works for months now. Browsing your blog & pages is faster than ever! http://gitlab.com/mythic-insight/legendary
Devs For Ukraine videos available! Q&A with José, Confident Elixir & more!
The videos from our Devs For Ukraine conference are now available in this playlist.
Of particular interest are probably the Q&A with José Valim, Confident Elixir by Tetiana Dushenkivska, Patterns for Sanity by Vittoria Bitton as well as a Fireside Chat involving Saša Jurić. But all the other ralks are also great!
Guards - simple restriction checking
Guards are a great way to check data limits. They are safe and can make the everyday work with the project more pleasant and, at the same time, limit the duplicated code. And it’s all in pattern matching!
Check on: https://bartoszgorka.com/guards-simple-restriction-checking
ThinkingElixir 096: Reviewing Elixir with José Valim - Part 4
In episode 96 of Thinking Elixir, José Valim returns for part 4 in our 5 part series as we count down to the 10 year anniversary of the Elixir project we know and love! In Part 4, we talk through the Elixir releases of 1.10, 1.11, and 1.12. We go deeper on the philosophy of “explicit vs implicit” and how that informs many design decisions about the language. We learn about how Elixir and Erlang loggers were unified, how matching on map keys in guards enabled receives block enhancements, how common date sorting bugs were solved with Enum.sort improvements (that you should really listen to), the improvements to application config, how exceptions work in Erlang and Elixir and much more! A packed episode!
Using Profiling in Elixir to Improve Performance
In this post, we explore three profiling tools you can use to find performance issues in Elixir — cprof, eprof, and fprof:
https://blog.appsignal.com/2022/04/26/using-profiling-in-elixir-to-improve-performance.html
Adding traceability to Elixir applications with Spandex: our experience
In November 2021, we decided to give the Spandex library a try after reading an interview with its author on the Datadog website. After a successful initial setup, we identified one main improvement that needed to be done, which was to be able to distinguish the different layers. Also, there were a few issues: a lack of links between traces and logs, incorrect Datadog statuses with HTTP errors, and trace losses in asynchronous tasks. In this article, we will describe how we fixed these issues using existing pull requests, reported issues, and articles written by Spandex maintainers. https://medium.com/wttj-tech/adding-traceability-to-elixir-applications-with-spandex-our-experience-1b97978146e2
Refresh your development workflow
If you are tired of calling recompile within the interactive elixir shell and want to have a similar experience as with phoenix, give lettuce a try!
