AstonJ

AstonJ

4) ElixirConf 2017 - Thinking In Ecto - Darin Wilson

by @darinwilson

Most Liked

darinwilson

darinwilson

Author of Programming Ecto

As the speaker in the aforementioned talk, this seems as good a place as any to apologize for all of the mistakes.

I usually test all of the code in my slides, but I made a number of changes at the last minute and didn’t go through my usual cross checks. Rest assured, I won’t be making that mistake again :confounded_face:

I’m very grateful to @idi527 for pointing out the errors. I’m going to take some time to go through everything and update the slides. I’ll also talk to the conf organizers to see what can be done about updating the video.

Again, my apologies. Lesson learned, the hard way (as usual…)

10
Post #4
idi527

idi527

Great talk - there were some typos…

at https://youtu.be/YQxopjai0CU?t=697

this won’t work

albums.tracks

something like this, however, will

for album <- albums, do: album.tracks

at https://youtu.be/YQxopjai0CU?t=892

a typo in

def with_tracks_longer_than(name, duration) do

should be

def with_tracks_longer_than(query, duration) do

at https://youtu.be/YQxopjai0CU?t=1147

Repo.transaction do
  ...
end

is not valid, it’s does not accept ast, but a function
should be

Repo.transaction(fn ->
  ...
end)

at https://youtu.be/YQxopjai0CU?t=1260

in the case of an error, the returned tuple will have four entries

{:error, atom, any, %{optional(atom) => any}}

the code on the slides should be

case result do
  …
  {:error, :album, album_changeset, _changes} -> …
  {:error, :user, user_changeset, _changes} -> …
end

at https://youtu.be/YQxopjai0CU?t=1288

missed do keyword and the argument to the function
the code should probably be

def check_user_progress(%{user: user}) do
  ...
end

at https://youtu.be/YQxopjai0CU?t=1435

Repo.all/1 will return a list for both queries
the code for the first one should be

Repo.all(q1)
=> [%MusinDb.Artist{...}]
griffinbyatt

griffinbyatt

Any mistakes aside, I enjoyed the talk :slight_smile:

Last Post!

darinwilson

darinwilson

Author of Programming Ecto

Thanks @Nefcairon - I’m glad you found it helpful!

Where Next?

Popular in Talks Top

New
axelson
ElixirConf 2017 - Writing an Editor in Elixir - by @ijcd (Ian Duggan) Elixir for GUIs? Yes, it’s possible. I...
New
axelson
Posting a little bit late today but here you go: ElixirConf 2017 - Elixir + Neo4j - Regina Imhoff Neo4j is ...
New
axelson
Let’s Talk Process Dictionary - @gregvaughn Well, the first rule of Fight Club, I mean: process dictionary is that we don’...
New
axelson
ElixirConf US 2018 – We’re Just Getting Started - Our Three Years with Elixir – Maciej Kaszubowski (@mkaszubowski) ...
New
JuanjoA
Hi, I don’t know if I have the post in the right place. I put here in case you might be interested, I am not the author, I just found it...
New
CodeSync
Code Sync: Writing much better tests in Elixir by Xochitl Pérez | Code BEAM Lite Mexico 2023 Comments welcome! View the <span class="has...
New

Other popular topics Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 54006 488
New
ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 44532 311
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

We're in Beta

About us Mission Statement