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:

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:

JEG2

JEG2

Author of Designing Elixir Systems with OTP

I’m pretty confident that this talk is the best introduction I’ve seen to Ecto in any medium. It’s very well done.

darinwilson

darinwilson

Author of Programming Ecto

I enjoyed yours as well! It’s great that Phoenix and Ecto are getting some interest from the security community :+1:

Where Next?

Popular in Talks Top

axelson
ElixirConf 2017 - Elixir The Toyota Way - Powell Kinney Toyota has a century-long legacy of innovation in ma...
New
axelson
by @girlsleuth Whether you call it UI testing, End-to-End Testing, End-to-User Testing, or Acceptance Testing–it is often an intensely ...
New
New
CodeSync
Code Sync: Celebrating the 10 Years of Elixir | José Valim | ElixirConf EU 2022 Comments welcome! View the #code-sync and #elixirconf-e...
New
axelson
ElixirConf US 2018 – Take Your Time – Ben Marx (@bgmarx) OTP20 officially introduced dirty schedulers. In this talk, we’...
New
axelson
Okay, after many days here is the final post on the Elixir Conf videos. Since there are so many lighting talks I felt that it is better t...
New
axelson
Let’s Talk Process Dictionary - @gregvaughn Well, the first rule of Fight Club, I mean: process dictionary is that we don’...
New
AstonJ
File uploads are an essential part of many web applications, but often handling them can be tricky, which explains why they are one of th...
New
axelson
ElixirConf 2017 - Elixir Power Tracing - Gabi Zuniga Tracing is a technique for tracking events during a pro...
New
AstonJ
Day 1 ElixirConf 2017 - Day 1 Keynote - Justin Schneck (Discussion thread) ElixirConf 2017 - My Journey from Go to Elixir - Veronica L...
New

Other popular topics 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
dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
sergio
I couldn’t find any guides that worked well with Phoenix 1.6.0 and esbuild. I hope this helps people test the waters and eases you into t...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 45766 226
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New

We're in Beta

About us Mission Statement