What Elixir related stuff are you doing?

Learning Elixir on exercism.io!

2 Likes

me too

1 Like

Still in the learning process for both Elixir and Phoenix. I’ve been learning through Programming Elixir 1.2, Programming Phoenix, learnelixir.tv, and learnphoenix.tv

1 Like

Converting complex functions into simpler by splitting into multiple smaller/logical functions which return tagged tuples for usage with with. Thus getting rid of complex conditional nesting and covering all possible fails.

2 Likes

Learning Elixir and Phoenix by building simple invoicing app.

2 Likes

I’ve had to dive head first into Scala land, so I am circling back to Elixir now. Oh boy do I miss it! Wrote a blog post about setting up Gitlab Runner on your VPS to run Elixir/Phoenix tests. Next I need to read a bit about releases, and Gitlab build/deploy steps. Coming up to speed on Phoenix 1.3 (boundary pattern++), and start hacking on insert project idea here.

OTP is another topic I want to get proficient with, just need the time.

1 Like

I’m currently reading some Elixir books, especially for OTP parts.

1 Like

This is awesome!

1 Like

Thanks! Here ya go:

1 Like

Working on an Elixir/Phoenix app to coordinate kubernettes deploys.

2 Likes

Thanks, will be installing as soon as I get into work :slight_smile:

1 Like

It’s my current inter-freelance mission learning pastime.
Mostly http backend stuff. Clearly not the first backend language I’ve been using, but looks really promising so far,
just need to get my head around some concepts.
So now it’s mostly reading and struggling, but the struggling is shorter every new tries.

1 Like

@AstonJ: I am:

  1. Learning Elixir
  2. Looking and at least try to answer on some questions here
  3. Working for Makestry LTD
  4. Planning and working on some libraries/projects, see my special announcement.
1 Like

Finally getting some downtime to get back to Elixir. Been going through the drips at https://hackernoon.com/a-free-introduction-to-elixir-otp-ecto-and-phoenix-228d0e994fc1 and highly recommend it to those newish to Elixir.

1 Like

I’m learning Elixir, Erlang and OTP stuff as fast as I can. In parallel I’m grasping all about Phoenix, Ecto and related subjects in order to start an MVP in a week. (I don’t want to start this in Rails or even Hanami, which would be the natural choice for me).

2 Likes

Working on a library that turns ExUnit test cases and their tags into markdown documentation to use with ExDoc. It parses the ast and build up an intermediate representation to output as json/markdown/?. https://github.com/Ch4s3/bartleby

2 Likes

Hah, that looks cool, you should post it in its own thread when it gets docs and published! :slight_smile:

1 Like

Yeah I intend to. It’s basically a tool for satisfying some client requirements for “compliance” in the health space, but other folks might find it useful.

1 Like

Today I investigated how unreadable code would get when @/1 were overridden… :smiling_imp:

EDIT:

defmodule Foo do
  defmacro @(ast) do
    IO.inspect(ast)
    case ast do
      {:@, _, [{name, _, arg}]} ->
        IO.inspect(name);
        quote bind_quoted: [name: name, arg: arg] do
          case arg do
            nil -> IO.inspect("So, you like Super Attribute #{name}, dontcha?")
            [val] -> IO.inspect("Super Attribute #{name} now contains #{val}!")
            others -> IO.inspect("Super Attribute #{name} get all these things: #{inspect(others)}")
          end
        end
      _ ->
        quote do Kernel.@(unquote(ast)) end
    end
  end
end
import Foo
import Kernel, except: [@: 1]

@@foo
@@bar 1
@@baz 2, 3, 5
@thingy 3

Or even better:

defmodule AtAt do
  defmacro __using__(_opts) do
    quote do
      import AtAt
      import Kernel, except: [@: 1]
    end
  end


  defmacro @(val) do
    case val do
      {:@, _, [{name, context, args}]} ->
        {count, inner} = count_ats({name, context, args}, 2)
        quote bind_quoted: [count: count, inner: inner, escaped_inner: Macro.escape(inner)] do
          IO.inspect("Wow! Running #{Macro.to_string(escaped_inner)} with #{count} ats!")
          inner
        end
      _ -> quote do Kernel.@(unquote(val)) end
    end
  end

  defp count_ats({:@, _, [{name, context, args}]}, accum) do
    count_ats({name, context, args}, accum + 1)
  end
  defp count_ats(other, accum) do
    {accum, other}
  end
end
iex> use AtAt
iex> @@@@@@@@@@@@@@@@@@@@@@@@@@self()
"Wow! Running self() with 26 ats!"
#PID<0.85.0>
3 Likes

I’ve just finished Elixir in Action :003: (after reading 50% of Programming Elixir) - definitely feel like I have a fairly good overview of Elixir now.

I’m not sure whether to finish Programming Elixir next, or start Programming Phoenix (or maybe read them together?) - I’m itching to get a Phoenix done… but not sure whether I should wait for the book to be updated for 1.3 (/contexts etc).

Any suggestions? :101:

1 Like