We are using Phoenix / LiveView to build a fleet management portal for autonomous mobile robots. This photo shows a remote operations capability we recently built. It allows a user to remotely call a logistics robot to a map waypoint, and visualize its position on that map as it progresses.
We have a fair number of other features available with this so far. The experience has been really positive.
Some things we are using:
AWS (lambda integrations, ECS, SQS, S3)
MQTT
Protobuf (via protox)
Oban
Custom serialization library for our robotics middleware layer (turned out to be really easy to do with binary pattern matching)
Hi @alvinkatojr unfortunately, not right now. This is in a private portal that we use for our customers. If I can think of some other interesting things to show, I will post them.
Reviving my SQLite adapter in Elixir that is based on Rust code. Finishing the basics – opening and closing connections, pooling, configuration of various timeouts and limits, basic execution of SQL statements – and will add a ton of tests very soon, after which I am moving towards Ecto integration.
It will be an extremely performance-focused library that aims to work with Ecto the way all other well-supported databases do. Main value-add is speed and good data type validation / strictness.
Sadly job search is preventing me from giving it the full attention it deserves. Hopefully that changes soon.
I’ve been working on a set of libraries to allow low code software development for the elixir/phoenix framework.
There are several independent libraries for accomplishing that goal:
Schema / Context DSL (already published)
UI Liveview low code (almost ready) - produce index, show, modals out of a couple of lines. Including validation, complex form layouts (with tabs, groups) and associations (has_many, belongs_to)
Fine grained permissions and authorization with minimal coding (in the design phase)
Navigation menu facilitator.
Most of them use some kind of DSL producing a very opinionated equivalent code, and enabling a small set of available configuration.
article = Articles.get_article(1, preload: [:comments])
EctoSync.subscribe(article, assocs: [:comments])
...
def handle_info({{Comment, :inserted}, sync_args}, socket) do
article = EctoSync.sync(socket.assigns.article, sync_args) # contains comment inserted by a different process
end
Building our own CMS. We had a alpha version that we are using for our small clients because we did not want to use Wordpress anymore, we learned a few stuffs now we are making it big and for real.
So far this year I’ve been learning elixir and ash, building some components and ash extensions on my way to contributing a declarative, intent based, autonomous telecommunications service and resource management platform.
Currently working on AshNeo4j, a Neo4j datalayer for Ash as I find graphs tremendous for modelling knowledge, service expectations and the actual network.
Earlier this year I contributed an elixir protocol Outstanding for comparing expectations with actual.
and an ash extension for declaring what outstanding does on your resource.
I’ve made some other minor contributions which were only possible because of the welcoming and helpful community, which I’m incredibly proud to be part of.
I just started rereading the official docs after not touching Elixir for several years. I really enjoyed working with it back then, and now that I’m kicking off a new side project, I figured it was a good time to use Elixir again.