jkwchui

jkwchui

Soliciting feedback on an Ash primer tutorial

Hello all. I am drafting a tutorial for Ash, using AshCsv as a transparent datalayer, and contrasting the imperative-declarative ways of going about things. It’ll have some LiveBooks / source CSV, so it’s minimal setup to get started; and some accompanying videos for those who like to see it in action.

Before doing those, I want to make sure the content is alright. I am writing as someone relatively new to both Elixir and Ash, so your critical eyes would be helpful. I’ve published the draft here: A Gentle Primer to Ash – jon.hk

If you can let me know what should be changed (and probably how), then I’ll try to work it in. I anticipate one criticism being too much redundancy; that is intentional, as I think making minimal changes between steps, and showing each of these minimal changes explicitly, helps people who are new.

(I’m thinking about what is the right scenario extension for [2-4] relationship… ideas are welcome!)

Edit: I am also looking to disable code-formatting in LiveBooks, as they messes up the Ash DSL. Is that possible?

Most Liked

jkwchui

jkwchui

The LiveBooks / CSVs are here! :partying_face: I personally love tutorials that come with LiveBooks (and enjoyed @woutdp 's Ash set), and hope this self-contained/transparent setup can be an inviting start for everyone that was intimidated by the sheer Bigness of Ash.

…the sad thing is that I wrote [2-4] from a different browser window and somehow that got overwrote :crying_cat: Will add that back in the next day or two.

TwistingTwists

TwistingTwists

This is great as an introductory material.

Would love to have a deeper guide on relationships. :slight_smile:

jkwchui

jkwchui

Hello all.

The prose and LiveBooks are now done, with a new section on Code Interface inserted after calculations/queries, and the Relationship section is re-written to assume knowledge of code interface. I think this is as much as I can stretch “a Gentle Primer” :slight_smile:

Different strokes for different folks: there are also (low production) video walkthrough accompanying the article, that is parallel to the prose and the LiveBooks. I will keep coming back to this thread for your comments, but I consider this complete (and if you find it helpful, you’re welcome to share with the world).

Where Next?

Popular in Questions Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
JDanielMartinez
Hi! May someone helps me, please! I have two apps into an umbrella project: the first one is Database, which manages queries, and the se...
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I’m a nov...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Other popular topics Top

chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement