stevensonmt

stevensonmt

Wanted to go ahead and kick off the book club for Ash Framework: Create Declarative Elixir Web Apps. I had hoped to get through more of it myself before starting, but … life. Rather than waiting for the ever-receding “good time to do it” I wanted to start talking about the book now at least in part because the Ash Weekly newsletter announced that there will be an AMA on DevTalk tomorrow and the next day with @zachdaniel and @sevenseacat. I also wanted to have the discussion going in case anyone is headed to CodeBeam for the Supercharge Your Elixir Apps with Ash training session on March 5 and wanted to get a head start.

These are the folks who have previously contacted me or @AstonJ about wanting to participate:
@ken-kost
@asianfilm
@nille
@Pal
@denial

Of course everyone is welcome and I hope more folks will participate.

I’m going to throw out some initial broad thoughts to maybe get the ball rolling a little bit. I have never attempted to use Ash before but have been intrigued by it since it was announced as a project. The online documentation and helpfulness of the developers across a variety of platforms have been really impressive. I would say the book is an extension of that ethos. One tip, if you see a call out in the book clearly marked as important with a bright orange exclamation point in 44 point bold font next to a header that begins with “Don’t forget…” you should pay attention to that information. Ask me how I know.

Welcome everyone, can’t wait to read your thoughts!

Showing Posts 1 to 10

hyperoceanic

hyperoceanic

Me, please @stevensonmt! I’m relatively new to Elixir, looked at the Ash docs, decided to get the book.

Pal

Pal

Sweet. I’m going through the book for the second time, hope to add something useful to the convo.

stevensonmt

stevensonmt OP

I think you’ll enjoy it @hyperoceanic.

@ashkan117 welcome to the party as well!

stevensonmt

stevensonmt OP

I hope everyone’s had a chance to get started on the book. My real life has been very hectic so I haven’t quite finished. I think this is a book most people could get through in 3 days if they had the time to commit to it. Alas, I think we’re all probably pretty busy.

Anyway, just thought I’d share some thoughts on the first chapter. The writing style is clear and personable. Because I so rarely have to do anything with postgres anytime I do a book like this the hardest part is the setup where I have relearn all the database stuff. Other than that the first chapter was pretty effortless.

I really feel like Igniter strikes a great balance of being magical but also printing everything to the terminal so you know what is actually happening. The messages and warnings are very explicit, which is so nice.

The book does a nice job of introducing the concepts of domains and resources, terms which for trained devs are probably obvious but for someone self-taught are a bit opaque. This is clearly wrong, but my intuitive model of Domain:Resources is something like Parent:Sibling classes. So the example Tunez app has a Music domain with resources of Album, Artist, and Track. Everything an instance of an Artist, Album, or Track shares comes from being in the Music domain. While Album, Artist, and Track clearly relate to one another, each also have independent functionality. I wonder if anyone has a more accurate interpretation.

My final takeaway from chapter 1 was just how easy Ash makes the initial setup for a project. It really does exactly as advertised. You get to concentrate on the logic and ideas behind your project while Ash handles a large portion of the implementation. Unlike an agentic tool, however, Ash is not a black box so you can always see how and why it did what it did for you.

Looking forward to hearing everyone else’s experience with the book and Ash in general.

giusdp

giusdp

I went through the book some days ago and jumped straight to a fairly big project I wanted to do for some time. I have the book constantly open and jump back to it every time I need to do something. It’s helping me a lot to retain the info together with the docs.

Ash has a ton of stuff and the book is great to get a fast overview of how things work together so you can get started. Now I dived into multi-tenancy which the book does not cover (and the docs are not super deep either). I found way more help for that on the forum here.

Overall it’s quite enjoyable to work with, I like the book a lot and I can’t wait for the new chapter.

stevensonmt

stevensonmt OP

Anybody want to give me a clue what the GraphQL query for signing in with the API is supposed to look like? I’m doing this in the playground:

{
  signInWithPassword(email: "apiusr2@json.com", password:"password") {
    id
  } 
    
  }

and getting a 200 response from the server but the response in the playground is

{
  "data": {
    "signInWithPassword": null
  },
  "errors": [
    {
      "code": "forbidden",
      "message": "forbidden",
      "path": [
        "signInWithPassword"
      ],
      "fields": [],
      "vars": {},
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "short_message": "forbidden"
    }
  ]
}
zachdaniel

zachdaniel

Creator of Ash

The policies on the action by default only allow AshAuthentication to call them. If you want to allow signing in over the API, you’d need to add a policy allowing it.

GraphQL always responds with 200 (not something we can do anything about).

stevensonmt

stevensonmt OP

Thanks. I had but my typing is so terrible the policy was enabled for passowrds only.

stevensonmt

stevensonmt OP

Sorry this thread hasn’t really taken off. I’m surprised because the volume of Ash-related threads and the general interest in this book seems high. Unfortunately my life is very hectic at the moment – my wife has COVID, my daughter has mental health issues, my dog is dying of kidney failure, and my real job responsibilities are growing exponentially. I’m afraid I probably won’t have as much time to devote to shepherding this thread as I had hoped for a while. I do think the book is fantastic and the folks behind Ash are incredibly generous with their time and expertise. Hopefully this thread will organically grow as people go through the book, though perhaps the lack of discussion is actually a testament to how well done it is. If everything in the book is self-explanatory not much room for discussion I guess.

10
Post #9
ashkan117

ashkan117

No need to apologize! I’ve been skimming through the book more than reading it page by page so I feel guilty starting the discussions in this thread. I’ll try to revisit chapter 1 this week or next so maybe I can add a few talking points.

Appreciate you starting the effort to begin with! Life gets rough so hopefully this doesn’t add to the stress. The thread will always be here and I feel like multiple reads of a book are helpful so maybe we can do a few rounds of reading through the book

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 92995 915
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
GES233
I’m posting this in response to Jose’s recent tweet (Cr. link) : People are sleeping on Elixir for a coding harness: Hot-code swappi...
New
nseaSeb
AcmeScript — Writing JS hooks as if I were still using Elixir I’ve been having fun building a little something over the last few days: Ac...
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews