What Elixir related stuff are you doing?

8 Likes

Awesome!

1 Like
  • I am working on a HTTP server in elixir, https://github.com/CrowdHailer/Ace
  • Trying to learn about releases, and many infrastructure topics, e.g. docker kuberneties etc.
  • working out what it means for elixir applications to be clustered and cloud native
2 Likes

I’m writing a client library for Exon, my stock manager, but this time in Haskell!

1 Like

I’m working on a site where I’ll post music from around the world—like a blog but organized by country. I’m using it to learn Phoenix!

I’m also always thinking of what libraries and applications I can make.

1 Like

I’m working on a Natural Language Processing and Text Summarization library for Elixir:
https://github.com/nicbet/essence | https://hex.pm/packages/essence

My pet project is a phoenix-based framework for easier writing of Apple tvOS10 based apps, substituting XHR requests with channels, and extending eex layouts with TVML. No release yet.

2 Likes

Hey @AstonJ, regarding spacemacs check out the spacemacs ABC series https://www.youtube.com/watch?v=ZFV5EqpZ6_s&list=PLrJ2YN5y27KLhd3yNs2dR8_inqtEiEweE

1 Like

Awesome, thanks - added it to our Spacemacs Wiki :023:

1 Like

I’ve mostly been working on a stripped down Phoenix app. It’s literally just Phoenix+Ecto+Absinthe (GraphQL), no routes, controllers, views, or channels (although I might have some a bit later, need to think a bit more about it).

Other than that, I’ve been doing a lot of research into Riak and Hibari (I know, not Elixir, but it is still BEAM related). And plan on watching some of the talks from the elixir conf later this week :slight_smile:.

3 Likes

Awesome, let me know if you run into any issues. Please try out our v1.2 alpha release, it should be 100% functional we’re just still testing it “in the real world” before releasing beta / RC.

2 Likes

Pretty much all went smoothly :slight_smile:, only thing I noticed was regarding Absinthe.Plug (v1.2), that it returns different status codes now. These seem more appropriate than the previous ones, although I was unsure if all GraphQL errors are supposed to return 400 or not?

It seems like type errors return 400, but user generated errors do not. Looking at the plug it looks like maybe all GraphQL errors should return 400?

Basically should something like this return 400 or 200 with the new plug?

defmodule Schema do
    use Absinthe.Schema
    
    query do
        field :test, type: :integer do
            resolve fn _, _ ->
                { :error, "blah" }
            end
        end
    end
end

# What Absinthe.Plug v1.2 currently returns:
# curl -i -X POST -H "Content-Type: application/graphql" -d '{ test }' http://localhost:4000
# HTTP/1.1 200 OK
# ...
# {"errors":[{"message":"In field \"test\": blah","locations":[{"line":1,"column":0}]}],"data":{}}

If it is meant to return 400, then it is because the user created error is creating a GraphQL response with a data field. While the plug seems to be matching on each field individually, essentially: {:ok, %{data: _}} followed by {:ok, %{errors: _}}. So simplest fix would be reordering the matches so the :errors match is handled before the :data match.

1 Like

It’s the difference between validation errors and execution errors. v1.2 is a lot more strict about how it handles errors. If there are any validation errors it will refuse to execute at all since we can now do full document validation prior to any execution. Those errors by convention also will give you a 400.

User errors happen during execution. A 400 would be the wrong response because it isn’t a “bad request”, since we’re able to execute it.

2 Likes

I’m porting this library to Elixir:

Mostly for fun! Learning a lot about strings and Unicode.

2 Likes

Building the administration interface for some HTTP services actively used at the company I work for.

ngw

1 Like

:smiley:

3 Likes

Just finished deploying a test app with edeliver and disillery to set the stage for releasing my first production Elixir app.

1 Like

I’m trying to progress with ExParse. A side project of mine, which I do for educational purpose. I do hope that I do get a better grasp compiler theory and do pass the exam this time :wink:

1 Like

These days I’ve been using a few hours building a tiny concatenative language Rex on top of Elixir syntax, still very very experimental, but would like to experiment with the idea of tacit programming in elixir. Also have a few tiny libs I mostly use at my day-work (also elixir based) happy_with, pit, params

Also not Elixir specific but Erlang-related is my current work in progress alpha as hell Elm compiler to erlang’s beam vm: Elmer keep-it-secret

5 Likes

These days I:

  • check/use this forum (of course) for instance debating about maps and keyword lists
  • should (finally) wrap up my deep merge implementation so that I can PR to elixir :smiley:
  • I work on benchee to prepare the 0.5.0 release which will scale units so that those benchmarking results look nicer
  • work on benchee_plotly_js to bring an HTML formatter with awesome looking graphs to town
  • Hope to make it to the Berlin elixir meetup today, but will have to see how I feel (little cold)
1 Like

While still getting my footing in Elixir, I already POC-ed to my folks at work how much easier is getting multiple responses from an (internal) API responding with XML docuemnts is in Elixir than in Python.

On the “real world” front, finishing on “Introduction to Elixir” (I think is the name of the book) and will graduate to “The little Elixir & OTP book” after which… the plan is to baby-step more stuff internally at work. Probably won’t cause a shift… there’s too much Python code on production, but, maybe for newer projects…

1 Like