What Elixir related stuff are you doing?

Recently got vulnerability management shipped in Paraxial.io, here’s the announcement post: Announcing Vulnerability Scanning and Management for Elixir

It tracks findings from Sobelow (application code vulnerabilities), mix deps.audit (for vulnerable dependencies) and mix hex.audit (for dependencies that are retired). There are a few other vendors on the market that do something similar, like Snyk, but that only tracks vulnerable dependencies.

7 Likes

I’ve started to create a location based web app to help locate mobile pharmacies and hospitals for the earthquake that happened in Turkey, on Feb 6th, 2023. Help needed. Thank you.

8 Likes

Hi!
I am…

  • Working with Elixir and Nerves on IoT projects. And testing AtomVM!
  • Enjoying everyday with Phoenix for web and API projects.
  • Documenting packages and procedures.
  • Reading and reading and reading a lot of resources about Elixir, its ecosystem and the BEAM ecosystem.
    And some other stuff, like working in some packages I want to release, but I need more free time to dedicate to them hehe.
5 Likes

Been poking at Elixir and associated libraries (Phoenix, Nerves, Nx) over the last 10 years or so. It’s all been fun side projects and I’ve enjoyed it a ton. Looking forward to working in Elixir too, which I’ll get to do someday!

4 Likes

Rewriting a small subset of our legacy website (PHP - Zend Framework 1) to Elixir+Phoenix with LiveView. I wrote our website in 2011-12 (about 50+ modules), but last year I decided to rewrite the client facing parts to Elixir. So far the experience has been great.
Prior to that, I wrote server side Elixir to extract data from Florida Dept. of State for further processing (new business registrations), DBF parser, and other small utils.

8 Likes

My previous long-running side project (the elixir-powered telescope mentioned in this thread earlier) is a bit paused until the start of summer because it involves a lot of hardware (finishing the mirror, mainly). These days I’m re-implementing a small language, ovo2*, that I had written in Typescript, but in Elixir.

It looks a lot like Elixir syntax, with removed infix operators. I used it previously in a frontend long-long-term-side-project, to have a TS-hosted small data manipulation language that could be edited both visually and with text. Since I’m a bit further in the project, and I’d like to evaluate those scripts on the server, I’m reimplementing it in Elixir.

Here’s the full supported “syntax sheet” until now. It’s a great exercise to re-implement a tokenizer, parser combinators, etc, from scratch :slight_smile: . As usual, the goal is mainly my own distraction and learning, so I’m not shooting for efficiency. I try to implement stuff first, then research how it should be done.

This mini-language has no IO. The program has a special symbol called data that represents the input data. The output is the last evaluated expression. Everything evaluates to a value, so you don’t have single-branch conditions for example. Its goal is to allow my users (so, me) to visually write data transforms in my automation app. But the real goal is amusement.

  bar = 6
  age = add(access(data, `age`), bar)

  say_hi = \name, age ->
    join([name, `has the age`, to_string(age)], ``)
  end

  say_hi(access(data, `name`), age)

  fibs = \a ->
    if greater_or_equals(a, 2) then
        add(fibs(subtract(a, 1)), fibs(subtract(a, 2)))
    else
        1
    end
  end

  fibs(10)

I’m implementing the evaluation these days. The choice of removing all infix operators was made to make the visual editor / representation of the language simpler and more in-line with the text representation.

Here’s a screenshot of the previous typescript implementation’s visual editor :

I’ll go for something more “bubbly” than just nested blocks this time, and try to do it in liveview :slight_smile: .

*the language is called ovo2 because ovo1 was a script language I wanted to design in 2015 and that did not go anywhere ^^ . Technically, I’m now at ovo3 since I changed the syntax again.

5 Likes

Working my way through the “Programming Phoenix LiveView” ebook.

2 Likes

Can you share a link of the book please? Thanks! :slight_smile:

1 Like
3 Likes

How is it?

1 Like

It’s the only decent ebook that I am aware of on the subject of LiveView, especially one that is kept reasonably up to date.

1 Like

Not exactly a glowing review. I’d love to see that on the dust jacket :slight_smile:

1 Like

Well, the API introduced breaking changes (streams) 2 weeks before the new edition came out. Things are settling down, but LiveView is still an v0.x product. API stability should be coming soon but its not here yet.

2 Likes

Learning Modbus RTU, trying to read data of my Inverter to build a real-time DIY monitoring system with Elixir.

The Inverter is a Felicity IVEM5048. The manufacturers shared a communications document, but I’ve not been able to make any headway with reading from the serial port via Modbus. any help, please :pray:

2 Likes

I’m currently building a tool for recording songs or audiobooks from spotify modfyp to directly sync them to a toniebox. (Don’t know if its kinda popular or even known outside of germany but it’s a childrens music box). Some automation using oban, walllaby and the spotify web sdk going on here. All nicely integrated with realtime updates utilising LiveView.

I’m probably going to open-source the code if anybody is interested (also having a hosted version of it in the next couple of days available)

2 Likes

As a long term object oriented programmer, i find functional programming is really amusing. so i will dweld into functional world not haskell obviously but elixir, now i’m at the course of elixir by freecodecamp it’s about recursive, and pattern mathing. i’m excited to know more. cheers.

1 Like

I find/found it quite excellent so far.
Half way through.

2 Likes

Finally got this to work!

 %{
  _dt: "2023-08-29 18:58:33",
  inv1: %{
    stats: %{ChgMode: 2, Fault: nil, PVMode: "BatteryMode"},
    Batt: %{Curr: -8.0, SOC: 72.0, Volt: 52.98, Watt: -445.0},
    BusVolt: %{Neg: 0, Pos: 3901},
    RInv: %{Curr: 27.0, Volt: 229.7, Watt: 390.0, Freq: 50.0, VA: 620.0},
    RLine: %{Curr: 0.0, Volt: 0.0, Watt: 0.0, Freq: 0.0, VA: 0.0, PF: 0.0, vDCI: 0},
    RLoad: %{Watt: 374.0, VA: 390.0, Pct: 7.0},
    ROp: %{Curr: 1.7, Volt: 229.7, Watt: 374.0, Freq: 50.0, VA: 390.0, vDVI: 0},
    Scc: %{Module: 1, ChgMode: 2, BattVolt: 52.98, ChgCurr: 0.0, ChgPower: 0.0, FualtMsg: 0, HsTemp: 40, PvVolt: 0.0},
    Temp: %{Bat: 34, Inv: 41, Txt: 34}
  },
  inv2: %{
    stats: %{ChgMode: 0, Fault: nil, PVMode: "BatteryMode"},
    Batt: %{Curr: -8.0, SOC: 71.0, Volt: 52.87, Watt: -444.0},
    BusVolt: %{Neg: 0, Pos: 3895},
    RInv: %{Curr: 28.0, Volt: 229.5, Watt: 406.0, Freq: 50.0, VA: 642.0},
    RLine: %{Curr: 0.0, Volt: 0.0, Watt: 0.0, Freq: 0.0, VA: 0.0, PF: 0.0, vDCI: 0},
    RLoad: %{Watt: 386.0, VA: 413.0, Pct: 8.0},
    ROp: %{Curr: 1.8, Volt: 229.5, Watt: 386.0, Freq: 50.0, VA: 413.0, vDVI: 0},
    Scc: %{Module: 1, ChgMode: 0, BattVolt: 52.87, ChgCurr: 3.0, ChgPower: 0.0, FualtMsg: 0, HsTemp: 45, PvVolt: 0.0},
    Temp: %{Bat: 36, Inv: 43, Txt: 36}
  }
}

Next: build time-series from the logs with CubDB
Then: attempt to graph Solar Production and Daily load with LiveViews

2 Likes

I built https://magenta-babyish-zenaida.gigalixirapp.com

As part of a job position announced at Hacker News (Who’s hiring? Thread, August 2023 Edition).
Ask HN: Who is hiring? (August 2023) | Hacker News (Ctrl + F, look for ‘Hamilton’ keyword).
Relevant part:


Assignment (Waived for anyone with meaningful open-source web experience including but not limited to GSOC)

Build an authenticated website on elixir live-view (Phoenix.LiveView — Phoenix LiveView v0.19.5, tutorial https://www.youtube.com/watch?v=MZvmYaFkNJI&t=2s). After logging, the user name should be displayed on the logged-in page. There should be an icon on the password button to change the password element to text.


And it was a great opportunity for me because I finally get to take a dive in into Elixir/Phoenix that I wanted to take since 2018 IIRC. I went through several Phoenix Documentation pages because I didn’t want to just hack without appreciating the Elixir/Phoenix way of doing things.

And yet to see if I get the announced position.

3 Likes

The backend for an end to end encrypted distributed file system, email and chat service.

3 Likes