Machine learning, LiveView powered Desktop Applications
There are multiple ways to interact with your software and one of the most common ones is Desktop applications. It's a very tricky area but a recent project has made it a lot easier - Tauri. In this post we're going to build a Liveview applications that uses Bumblebee and a new proof of concept library to install Tauri in your Phoenix project called ex_tauri
Machine Learning Helping My Lazyness
Writing blog posts can be a bit tricky, annoying, and a lot of other things but the worst part is the laziness of finishing it...
Realtime Updates with LiveView
One of the main advantages of LiveView over other implementations is the fact that realtime operations become a state update. In this post I'm going to detail how you can implement a realtime feature by adding a anonymous "ghost" to track where other users are when reading in this blog. We will tackle process creation, socket connection and Elixir <=> JS interoperability so get ready for a really long post.
Atom feeding and xmerl
Any good blog needs to support some sort of feed standard so we will build our own using a neat moodule from Erlang called xmerl. We will learn a bit about Erlang interoperability and also see how we can create XML content without adding extra dependencies to our code.
Drawing Graphs With a Twist
With our statistics ready to be consumed, we should be able to share them with everyone. To do so we'll use Vegalite and update the graphic information dynamically as new people join. A mix of Javascript and Elixir that will make some really cool magic.
Statistics on the cheap
In an homage to 90's websites I wanted to add a read counter but with a modern twist... DETS, GenServer, Telemetry, Phoenix.LiveView, Phoenix.PubSub we will create a counter that has live updates so we can track how many people actually read the content 🧐.
When Rate limit strikes!
Well that was quick... Github API warned me that I've spent all my Rate limiting due to the fact that I'm using their Public API without Authorization and well that is expected... To handle this problem I'm going to use a really basic solution: I will cache whatever information I want from their API and store it in memory and I will use only what Elixir has without extra dependencies to do so.
Making my blog
For years I've wanted to write down and share what I'm coding but always postponed it. That time has ended! It's time for me to try and be more proactive and share some of my discoveries, weirdnesses and joys of coding.