<    March 2017    >
Su Mo Tu We Th Fr Sa  
          1  2  3  4  
 5  6  7  8  9 10 11  
12 13 14 15 16 17 18  
19 20 21 22 23 _2_4 25  
26 27 28 29 30 31
00:00 <benwilson512> r00tl3ss: unlikely, the phoenix socket JS is more than just a web socket client
00:00 <benwilson512> not sure why you would want to, there are plenty of other JS websocket clients
00:02 <r00tl3ss> benwilson512: I was hoping I could use the socket to make periodical requests to that remote socket to get updates, for instance
00:02 <r00tl3ss> without having to use another websocket client
00:02 <r00tl3ss> but I kinda had the feeling that phoenix.Socket is meant for use in Phoenix
00:02 <benwilson512> r00tl3ss: You're more than welcome to try, but I would be surprised if it worked out of the box
00:02 bind1 joined
00:03 <r00tl3ss> had a look a bit at the source on github, and it doesn't look like it has any input for remote stuff
00:03 <r00tl3ss> Shall I?
00:03 <r00tl3ss> just socket = new Socket("http://remotehost.com:6464", etc) ?
00:03 <benwilson512> likely?
00:04 <r00tl3ss> unlikely, it looks like, though I only glanced at phoenix/socket
00:07 <micmus> phoenix implements a protocol over websockets - your socket service would need to support this protocol
00:07 <micmus> it's used for multiplexing communication over channels, automatic reconnect, etc
00:08 rschmukler joined
00:08 sid_fules joined
00:09 <r00tl3ss> micmus: So the best bet would be to use a regular websocket client, and let that pass stuff to the Phoenix socket?
00:09 <micmus> yeah, probably
00:09 alex88 joined
00:10 universa1 joined
00:13 oetjenj joined
00:17 <r00tl3ss> Curious: would any of you guys be willing to do some part time work for money that can only materialize in the future?
00:17 <r00tl3ss> We could setup some kind of crypto token/contract on ethereum
00:18 <r00tl3ss> pay you in tokens first, which at some date in the future will transform in to ether?
00:18 <r00tl3ss> (we got no money and we need to finish the thinggy!! waaa)
00:18 rschmukler joined
00:28 dbarrett joined
00:29 universa1 joined
00:33 rschmukler joined
00:33 DLSteve joined
00:36 nighty joined
00:38 potatosa_ joined
00:39 fowlduck joined
00:39 harfangk joined
00:41 hotpancakes joined
00:45 gvaughn joined
00:46 gvaughn_ joined
00:50 universa1 joined
00:50 codestorm777 joined
00:51 exadeci joined
00:53 gvaughn_ joined
00:54 PaReeOhNos joined
01:01 rschmukler joined
01:02 hotpancakes joined
01:09 sfbw joined
01:16 hotpancakes joined
01:17 universa1 joined
01:22 potatosalad joined
01:26 r00tl3ss joined
01:26 universa1 joined
01:37 dustinfarris joined
01:44 refriedchicken joined
01:45 <notriddle> Is it possible for you to create the Etherium token without already having the Ether to spend? Where does the Ether come from if everything flops?
01:46 <* notriddle> isn't actually looking for work, but is curious about how the Etherium network works.
01:47 Guedes joined
01:48 rschmukler joined
01:50 Tablesaw joined
01:51 LBRapid joined
01:52 systemfault joined
01:56 lessless joined
01:57 w-t-h_ joined
02:01 astalotte` joined
02:01 Tablesaw left
02:09 potatosalad joined
02:10 wilo joined
02:12 wilo joined
02:13 dustinfarris joined
02:14 wilo joined
02:14 universa1 joined
02:16 wilo joined
02:22 wilo joined
02:23 oborot joined
02:24 PaReeOhNos joined
02:25 <oborot> Hello
02:25 <oborot> Is there any way to embed emulator arguments when running iex or mix test?
02:26 refriedchicken joined
02:27 wilo joined
02:28 daniel_ joined
02:29 wilo joined
02:31 wilo joined
02:32 universa1 joined
02:35 wilo joined
02:35 sfbw joined
02:35 wong2 joined
02:36 rschmukler joined
02:39 codestorm joined
02:40 wilo joined
02:43 wilo joined
02:44 universa1 joined
02:46 dimitarvp joined
02:47 wilo joined
02:49 dustinfarris joined
02:50 tomterl joined
02:52 myronmarston joined
02:56 rschmukler joined
02:57 daniel_ joined
02:59 universa1 joined
03:03 gvaughn joined
03:04 wilo joined
03:14 <benwilson512> notriddle: I believe you're in the wrong place
03:14 <benwilson512> ah my bad, the scrollback didn't include context
03:14 <benwilson512> carry on
03:18 wilo joined
03:21 wilo joined
03:28 wilo joined
03:33 codestorm joined
03:36 universa1 joined
03:38 codestorm joined
03:39 z1mvader joined
03:42 rschmukler joined
03:46 tofutoon left
03:47 universa1 joined
03:50 dustinfa_ joined
03:51 codestorm joined
03:52 gvaughn joined
03:53 universa1 joined
03:54 tofutoon joined
03:55 PaReeOhNos joined
03:55 racycle joined
03:59 milmazz joined
04:17 universa1 joined
04:18 wilo joined
04:26 lessless joined
04:27 rschmukler joined
04:27 universa1 joined
04:27 wilo joined
04:40 sahrizv joined
04:41 hotpanca_ joined
04:44 universa1 joined
04:45 lessless joined
04:48 rschmukler joined
04:48 wtetzner joined
04:52 <r00tl3ss> chris
04:59 sahrizv joined
04:59 codestorm joined
05:06 rschmukler joined
05:11 universa1 joined
05:18 rschmukler joined
05:20 <bambanx> hello
05:25 PaReeOhNos joined
05:29 codestorm joined
05:30 cemilowski joined
05:30 zabirauf joined
05:30 zabirauf joined
05:33 universa1 joined
05:35 codestorm joined
05:43 gvaughn joined
05:48 universa1 joined
05:49 wtetzner joined
05:52 robotika joined
05:56 universa1 joined
05:58 Tica2 joined
06:01 icanhazbroccoli joined
06:02 <ivan> I keep seeing compile errors like this one ~10% of the time; any idea what it might be? https://gist.github.com/ivan/59b0fbeb436286d5fa11079822809c99
06:03 praveen joined
06:03 <ivan> I don't _think_ I have a circular dependency but maybe I do? it's always that struct
06:04 <ivan> hmm, is it legal to alias something at top-level that's only defined later in the source file?
06:07 universa1 joined
06:07 potatosalad joined
06:08 rschmukler joined
06:10 potatosa_ joined
06:13 universa1 joined
06:15 myronmarston joined
06:18 jbhannah joined
06:19 craigp joined
06:23 rkazak joined
06:25 <Nicd-> ivan: can you gist an example of what you mean?
06:27 universa1 joined
06:31 dec0n joined
06:33 voltone joined
06:33 wsieroci joined
06:37 kommen joined
06:38 codestorm joined
06:39 dustinfarris joined
06:56 PaReeOhNos joined
06:56 rschmukler joined
07:01 universa1 joined
07:03 <robotika> I'm just starting to look at elixir + phoenix, and have what might be a silly question
07:04 <robotika> i keep seeing references to a slash and then a number - like title/0
07:04 <robotika> i haven't been able to find what the /0 means
07:04 <harfangk> it's called arity
07:04 <harfangk> number of arguments that function takes
07:05 <robotika> ok, I felt that to be the case - cool, thanks
07:05 <harfangk> yup
07:12 universa1 joined
07:13 danolj joined
07:16 Radar joined
07:20 tomaz_b joined
07:21 markh joined
07:23 universa1 joined
07:25 imack joined
07:25 sahrizv joined
07:29 raycoll joined
07:30 raycoll joined
07:32 gvaughn joined
07:35 tuacker joined
07:40 universa1 joined
07:41 cemilowski joined
07:43 <whodidth1s> how do i get more of the fixture(:mything, params \\ @them_defaults) thingies if i need multiple in a my_context_test.exs
07:44 <ivan> Nicd-: will do if I ever see this again, currently too braindead
07:44 <whodidth1s> am interested in if i can do more without the multiple clauses with defaults -error
07:45 vmoravec joined
07:48 craigp joined
07:52 zabirauf joined
07:53 dch_ joined
07:57 FifthWall joined
07:57 codestorm joined
07:58 zabirauf joined
08:02 Radar joined
08:02 wtetzner joined
08:06 PaReeOhNos joined
08:07 acscherp joined
08:08 cemilowski joined
08:09 montanonic joined
08:14 arathunku joined
08:14 universa1 joined
08:15 ZippoWeb joined
08:15 shmibs joined
08:16 icanhazbroccoli joined
08:17 PaReeOhNos joined
08:20 zabirauf joined
08:21 zabirauf_ joined
08:24 kommen joined
08:28 kommen_ joined
08:31 universa1 joined
08:32 flaviodesousa joined
08:39 CapNemo joined
08:40 asabil joined
08:40 myronmarston joined
08:40 <asabil> Hi
08:41 <asabil> I have an issue with ecto migrations, if I use ecto.create then ecto.migrate --prefix foo
08:41 <asabil> the migration will fail because the foo schema hasn't been created yet
08:41 <asabil> anyone aware of such an issue?
08:43 <OliverMT> how do I see if a named worker for ranch that I start with worker(..) in my phoenix apps start function is up and accepting stuff without using observer?
08:44 universa1 joined
08:44 rschmukler joined
08:45 dani0_ joined
08:45 zabirauf joined
08:46 <Nicd-> asabil: maybe ecto.create just uses the default schema
08:47 Guest67__ joined
08:48 Cohedrin joined
08:50 dani0_ joined
08:51 travis-ci joined
08:51 <travis-ci> elixir-lang/elixir#13754 (master - 03722c1 : Christopher Adams): The build passed.
08:51 <travis-ci> Change view : https://github.com/elixir-lang/elixir/compare/07dc59d55721...03722c1038aa
08:51 <travis-ci> Build details : https://travis-ci.org/elixir-lang/elixir/builds/208889880
08:51 travis-ci left
08:52 universa1 joined
08:58 zabirauf joined
08:59 josevalim joined
08:59 m3tti[m] joined
09:00 mark_66 joined
09:02 h4cc joined
09:02 marr joined
09:06 coryschmitt joined
09:07 universa1 joined
09:08 baweaver joined
09:11 gokr joined
09:13 universa1 joined
09:16 PaReeOhNos joined
09:17 byte512 joined
09:19 craigp joined
09:20 gvaughn joined
09:20 lexmag joined
09:23 codestorm joined
09:29 lessless joined
09:35 DeadTrickster joined
09:41 universa1 joined
09:45 <asabil> OliverMT :erlang.whereis(:name)
09:47 <asabil> looks like elixir also has a wrapper for that: Process.whereis(:name)
09:47 <OliverMT> does that give info about the supervisor?
09:47 <asabil> Nicd- the issue is that it tries to create the migrations table, and doesn't ensure that the schema actually exists
09:48 <asabil> OliverMT, Process.info/1 will give you that
09:48 <OliverMT> aha
09:49 <OliverMT> will play around with it
09:49 <OliverMT> I guess this is what the observer uses underneath the hood anyways
09:51 hotpancakes joined
09:52 <Nicd-> asabil: what could it do if the schema did not exist? it was not instructed to create the schema. if the schema doesn't exist, it's probably a programming error and it should crash so the user notices
09:52 <asabil> Nicd- make sense, but still something is missing
09:52 <asabil> ecto.create should maybe allow creation of schema
09:52 <asabil> and ecto.drop should allow specifying a schema in which case only the schema would be dropped not the entire database
09:53 <Nicd-> those are good suggestions
09:53 hotpanca_ joined
09:54 Camnora joined
09:54 haste joined
09:56 <PaReeOhNos> What's the preferred way of handling a gen stage producer failure? I don't want the consumers to die, I want them to wait for the producer to come back online. I'm using the `cancel: :temporary` option, and thought about using a `Process.send_after` call to retry the connection later, but a) is there a better option, and b) how do I know the initial connection failed if it's not online at the very
09:56 <PaReeOhNos> beginning. `handle_cancel` doesn't seem to be called at this point
09:58 universa1 joined
09:58 zabirauf joined
10:01 dani0_ joined
10:04 mpsag joined
10:09 sid_fules joined
10:11 <asabil> is it me or is Mix unable to run two times the same task "run" in an alias?
10:12 <asabil> alias: ["foo.bar": ["run a.exs", "run b.exs"]]
10:12 <asabil> seems like only the 1st one gets executed
10:14 Guedes joined
10:14 Guedes joined
10:14 TarVanim_ joined
10:16 <gazler> asabil: Each task can only be run once. In code you can use Mix.Task.rerun and Mix.Task.reenable https://hexdocs.pm/mix/master/Mix.Task.html#reenable/1
10:17 <asabil> gazler, any input on how to use in an alias?
10:17 <gazler> asabil: Yeah, gimme a sec
10:17 <asabil> thanks
10:18 codestorm joined
10:19 <gazler> asabil: aliases: ["foo.bar": fn _ -> Mix.Task.run(:run, ["a.exs"]); Mix.Task.rerun(:run, ["b.exs"]) end],
10:19 <asabil> awesome, thanks a lot
10:19 <gazler> asabil: I'd use a named function in mix.exs, I only did it inline to show you here.
10:19 <gazler> something like ["foo.bar", &run_foo_bar/1)
10:19 <asabil> yeah I understand the idea now, I will do that
10:22 talklittle joined
10:25 universa1 joined
10:26 lexmag joined
10:27 lexmag_ joined
10:27 zabirauf joined
10:28 zabirauf_ joined
10:31 universa1 joined
10:33 rschmukler joined
10:39 gmcabrita joined
10:46 hotpancakes joined
10:49 universa1 joined
10:53 harfangk joined
11:09 <PaReeOhNos> How do you use tagging in gen stag? Docs talk about the subscription_tag but not really how to set it for a subscription?
11:09 gvaughn joined
11:10 nighty joined
11:12 janhendrik joined
11:12 codestorm joined
11:14 universa1 joined
11:17 codestorm joined
11:22 Guedes joined
11:23 cemilowski joined
11:24 Ioyrie joined
11:25 universa1 joined
11:27 zabirauf joined
11:27 rschmukler joined
11:28 dani0_ joined
11:31 hotpancakes joined
11:32 universa1 joined
11:33 teddysmoker joined
11:34 nmv joined
11:37 codestorm joined
11:38 inoas joined
11:39 sahrizv joined
11:39 bvcosta joined
11:40 <janhendrik> Hi Everyone, I'm having trouble with the new Phoenix 1.3 generator schaffolds and ecto relationships. I am hoping someone can point me in the right direction.
11:40 <janhendrik> I'm still wrapping my head around the new Context concepts.
11:41 Svenskunganka joined
11:41 <janhendrik> mix phx.gen.html TV Series series name:string year:date summary:text -- works fine
11:41 <janhendrik> mix phx.gen.html TV Episode episodes series_id:references:tv_series name:string year:date summary:text -- gives the following error
11:42 <gazler> janhendrik: is https://github.com/phoenixframework/phoenix/issues/2151 related?
11:42 <janhendrik> ** (Mix) Unknown type `tv_series` given to generator
11:42 <janhendrik> yes I think so
11:43 <gazler> janhendrik: Try changing to phoenix master and see if that works.
11:43 universa1 joined
11:44 <janhendrik> gazler: I've done, mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez a few moment ago
11:44 <janhendrik> still the same problem
11:44 <gazler> janhendrik: That's only the new installer, you want to update phoenix in your mix.exs
11:44 <janhendrik> my mix.exs contains {:phoenix, "~> 1.3.0-rc"}
11:44 <gazler> {:phoenix, github: "phoenixframework/phoenix"} instead of {:phoenix, "~> 1.3.0.rc-0"}
11:45 <janhendrik> and then I did a mix deps.get
11:45 <Svenskunganka> Hey guys, I'm trying to grasp how Elixir's Stream module interacts with Erlang's stdlib. We have File.stream! in Elixir's stdlib that allows lazy processing of data. How would you do this with Erlangs zlib functionality?
11:45 <janhendrik> Ah ok thanks I'll try the
11:45 <gazler> janhendrik: Right, so the commit that fixes the issue isn't published to hex yet.
11:46 <janhendrik> gazler: thanks, that makes sense. I'll try master and see if it works now.
11:46 <gazler> janhendrik: I can see how it is confusing. The archive contains the installer which is required for the mix phx.new task. All other tasks are from the phoenix dependency specified in mix.exs
11:47 <janhendrik> gazler: Ah I had not realized that.
11:48 <Svenskunganka> Let's say you want to create a pipeline like this: HTTP Response |> Gzip decompression |> Tar extraction |> Filesystem.
11:48 <Svenskunganka> Using erlang's zlib
11:49 zabirauf joined
11:49 hotpancakes joined
11:51 <gazler> Svenskunganka: I believe you need to implement the Enumerable and Collectable protocols
11:51 <gazler> And create a wrapper for zlib
11:51 <gazler> Svenskunganka: If you have a look at how https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/io/stream.ex and https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/file/stream.ex#L1 are implemented for some idea
11:54 <Svenskunganka> gazler: Ah that makes sense, I'll look into that. Thank you for the pointers!
11:54 <nox> (à§èèè
11:54 <janhendrik> gazler: Thank you so much! After addidng an override: true to my phoenix dep in mix.exs I was able to try out the master branch and now the generators work as expected.
11:55 <gazler> janhendrik: Great. Be sure to change back to the new release candidate when it is released.
11:56 <janhendrik> gazler: sure, will do.
12:00 cristianR_ joined
12:01 universa1 joined
12:04 harfangk_ joined
12:05 harfangk__ joined
12:09 codestorm joined
12:12 cristianR_1 joined
12:13 mpsag joined
12:20 universa1 joined
12:22 owickstrom joined
12:25 rschmukler joined
12:26 <PaReeOhNos> Do supervisors stop restarting processes after a certain number of attempts? or will it just retry indefinitely?
12:35 meh` joined
12:38 hotpancakes joined
12:38 zetashift joined
12:41 universa1 joined
12:48 gabrielsch joined
12:49 sahrizv joined
12:54 <whodidth1s> so what's a noice authentication library on the non-json web token front
12:55 gokr joined
12:57 gvaughn joined
13:00 cryptomata joined
13:00 <gabrielsch> Hi guys does anyone know how to fix it: bad request to GovLaunch.ProductController.create, no matching action clause to process request
13:01 <gabrielsch> I have a "create" method in my ProductController
13:01 <gabrielsch> and it's a resource route
13:03 codestorm joined
13:03 sfbw joined
13:06 meh` joined
13:09 rschmukler joined
13:11 asabil joined
13:11 universa1 joined
13:14 hbraun joined
13:16 <Nicd-> PaReeOhNos: isn't it configurable?
13:17 <Nicd-> gabrielsch: your create function did not match the request
13:18 celyr joined
13:20 <PaReeOhNos> Nicd- well you can set the `restart` option to `:permanent` but wasn't sure if this was really permanent, or if it kept failing repeatedly for a certain number of times it would give up
13:20 <Nicd-> I don't know really, I just thought it was
13:22 <PaReeOhNos> I'll assume it is until I see otherwise :)
13:24 universa1 joined
13:32 dani0_ joined
13:33 universa1 joined
13:38 dani0_ joined
13:39 rschmukler joined
13:40 harfangk joined
13:46 sfbw joined
13:46 <whodidth1s> i guess openmaze and coherence are most popular options :thinking:
13:46 universa1 joined
13:56 universa1 joined
13:57 codestorm joined
13:58 cristianR_ joined
14:00 alxnlssn joined
14:03 r00tl3ss joined
14:03 laut joined
14:04 universa1 joined
14:04 willyk joined
14:08 dani0_ joined
14:09 Zeedox left
14:11 potatosalad joined
14:12 nanohest joined
14:13 universa1 joined
14:15 ramortegui joined
14:17 <Ankhers> josevalim, micmus: belongs_to_many / has_one_of_many? Which could eventually lead to has_and_belongs_to_many?
14:18 <josevalim> has_and_belongs_to_many would be confusing given many_to_many
14:18 universa1 joined
14:18 cristianR_1 joined
14:18 <Ankhers> I think the has_and_belongs_to_many is the list of record on both records. At least in mongoid.
14:19 <josevalim> Ankhers: we don't plan to add that because that is inherently unsafe in mongo
14:19 <josevalim> Ankhers: for now, let's go with array_belongs_to / array_has_many and array_has_one
14:20 <josevalim> we will find a better name along the way but no reason to block development pending on the name
14:20 <josevalim> we won't have an array_many_to_many though since it is unsafe
14:21 zidoh joined
14:22 <Ankhers> What would a migration path from a Mongoid application look like to Ecto if it doesn't have the has_and_belongs_to_many association?
14:23 <Ankhers> I can imagine people wanting to introduce Elixir / Ecto into their company. But if it doesn't work with their current schema, they wouldn't be allowed to.
14:23 <Ankhers> What if we had an unsafe_has_and_belongs_to_many?
14:24 jerme joined
14:27 <Ankhers> josevalim: ^^
14:27 maxbeizer joined
14:30 <josevalim> Ankhers: if people want to write unsafe code, then they can write a small library or write the unsafe part themselves
14:30 <ciawal> is binary_part using byte indexes?
14:30 <josevalim> we should not allow people to easily port "wrong code"
14:30 <Ankhers> Fair enough.
14:31 <josevalim> and even though it won't be hard. it is a matter of using array_belongs_to on both sides and updating them
14:31 <Ankhers> I'm not sure how "wrong" it is though. Mongoid is an official Mongo project.
14:31 <Ankhers> But I agree that we shouldn't promote unsafe operations.
14:36 universa1 joined
14:46 universa1 joined
14:47 alex88 joined
14:49 cdg joined
14:49 gvaughn joined
14:51 codestorm joined
14:53 lexmag joined
14:56 gokr1 joined
15:01 myronmarston joined
15:02 dch_ joined
15:02 <micmus> It should be fairly easy to build the two-way-mirrored association on top of the array_belongs_to at the application level
15:03 <micmus> even if we decided to support it out of the box, that would be the first step towards implementing it
15:04 jigawatt joined
15:06 keathley joined
15:07 refriedchicken joined
15:08 dani0_ joined
15:14 universa1 joined
15:20 cemilowski joined
15:20 universa1 joined
15:22 <sulphur27> repo.hex.pm is down ? or is it only me ?
15:23 <ericmj> it’s down for many
15:23 <sulphur27> ah it seems to be DNS issue
15:24 <sulphur27> i removed DNS and it is working again
15:25 Exagone313 joined
15:25 universa1 joined
15:25 myronmarston joined
15:25 jerel joined
15:26 cemilowski joined
15:27 rschmukler joined
15:31 racycle joined
15:36 jerme joined
15:43 hotpancakes joined
15:44 sahrizv joined
15:45 <gabrielsch> hey guys I'm having some trouble here with validate_change
15:45 <gabrielsch> I want this validator to support both "link" and "image" fields
15:45 <gabrielsch> https://gist.github.com/gabrielsch/9e30a094f30fbb200fbb3f48b8187c1d#file-model-ex-L58-L69
15:45 codestorm joined
15:45 <gabrielsch> but since it's returning [link: error] it won't work with "image:" field
15:47 arathunku joined
15:48 universa1 joined
15:49 the_voice_ joined
15:52 <micmus> gabrielsch: the field name is passed in the first argument
15:53 <micmus> gabrielsch: you can return [{field, error}] using the unsugared keyword syntax
15:57 daekano joined
15:58 <gabrielsch> that's great, thank you micmus:
15:59 NeverDie joined
16:02 icecreamcohen joined
16:02 universa1 joined
16:04 <the_voice_> \o
16:07 mattyw joined
16:07 <the_voice_> Anyone here using Elixir in production on a large scale? I have only found 2-3 companies here that are using Elixir, none of them on a large scale and in our meetup at the end of the month we want to talk about Elixir in the wild. I would love some insights from someone who is using it in a large scale application.
16:08 cdg joined
16:08 <PaReeOhNos> the_voice_: How large scale are you talking?
16:08 <benwilson512> the_voice_: as far as elixir itself, Pinterest and Bleacher Report both come to mind
16:09 <benwilson512> and they've both written blog posts on it
16:09 <the_voice_> I have read most of the published articles about how it is being used already. It's important to note that this is one of the first meetups here so it's really just an introduction to Elixir for the community here in the hope of helping the community grow
16:09 <the_voice_> I have read all of those blog posts and seeing the presentation Bleacher Report did a few months ago too :)
16:10 <the_voice_> PaReeOhNos - a site/app/service that is handling enough traffic that it would no longer be able to use something like Rails trivially
16:11 <PaReeOhNos> was gonna suggest the Bleacher report but you've already seen that one. Definitely ticks that box
16:11 dani0_ joined
16:11 <the_voice_> Yah, if possible I would like to talk to someone from Bleacher Report to ask permission to use some of the info from their slides before I use it
16:12 <the_voice_> And also to see if they have any other information they think might be relevant. I hope we can bring over some rails devs to Elixir and even possibly get some of the startups here that are starting to hit the limits of what rails can do easily to Elixir
16:13 <alxndr> I work for Bleacher Report, and you're free to use whatever info we have put out on slides. There's also some info on what we've done in the little PDF that Erlang Solutions put together about how they helped us out https://www.erlang-solutions.com/resources/case-studies.html
16:14 <the_voice_> Right now nodejs is winning the mindshare here
16:14 <the_voice_> Thanks alxndr!
16:14 <alxndr> (some of the specific language in that case study about our old codebase isn't phrased the best, but the Elixir related stuff is all spot on)
16:14 ashishbista joined
16:14 <alxndr> IMHO the use case for Elixir is different than Node, they're not interchangeable
16:15 <alxndr> (we use Node as a frontend for some of our Elixir backends)
16:15 <the_voice_> That maybe, but among a lot of companies the problem of "If you have a hammer, everything is a nail" exists
16:16 meh` joined
16:16 <the_voice_> What is your usecase for node vs Elixir?
16:17 <alxndr> all our APIs are in Elixir; we have some single-page applications which are built with Node and talk to the APIs. We're not really Node as a backend... it really truly can't handle concurrency
16:18 <the_voice_> That makes sense.
16:18 <alxndr> loadtesting our Node frontend has shown that we can throw a decent amount of traffic at it... until we hit a magic number, and then everything goes sideways as the GC (?) goes crazy
16:21 danecando joined
16:21 samdvr joined
16:21 rhnonose joined
16:24 <tristan__> who's going to rewrite rocketchat in phoenix so maybe it doesn't need so many resources :)
16:24 <dch> Is there a Stream function that takes a function and returns a stream by lazily repeatedly evaluating that function?
16:24 <the_voice_> tristan__ go for it :P
16:25 <the_voice_> meteor was never a good platform for chat, but I don't think they realized it at the time which is too bad because it's a really cool project
16:25 <* dch> mumbles … CouchDB …
16:25 <micmus> dch is Stream.repeatedly what you're looking for?
16:25 <tristan__> yea, maybe it is really cool in theory :)
16:26 universa1 joined
16:26 <dch> micmus … maybe. I have a function that pops an item of a queue, and I want to Stream this through Stream.dedup/1
16:26 <dch> micmus: yes. I think that is what I need.
16:27 <dch> is that the only generator option micmus ? curious.
16:27 <icecreamcohen> alxndr: Say hi to Ben for me. Did you go to the last elixir / erlang meetup?
16:27 <the_voice_> tristan__ write the same thing in Elixir, you have a start with https://github.com/bnhansn/sling
16:27 jparise joined
16:27 <alxndr> icecreamcohen: shall do! nope I missed it unfortunately
16:27 <dch> imo it should be an Easter Egg in rebar3
16:28 <micmus> dch: there's a lot of generators - repeatedly, iterate & resource are the ones I've used most frequently
16:28 <tristan__> dch: what should
16:28 <dch> this rocketchat phoenix rewrite
16:28 <tristan__> oh, haha
16:30 <tristan__> waiting to find out what ec2 instance we are on with rocket but there are only a few hundred concurrent users. shouldn't be that bad
16:30 <tristan__> but keeps disconnecting
16:31 <tristan__> ah, t2.large
16:32 NeverDie joined
16:33 <the_voice_> As someone who used Meteor and started to do a bit of digging I can tell you more or less why this is happening. Basically they have a thing called Mergebox, great idea, doomed to fail kind of thing
16:34 <icecreamcohen> tristan__: have you used wireshark to figure out why it’s disconnecting?
16:36 <tristan__> icecreamcohen: na, others are looking more closely. I just like to complain and hope someone else will build a better one for me :)
16:37 <tuacker> tristan__: that's the spirit
16:38 <the_voice_> Meteor tries to keep the same data on the client as on the server in a thing called MiniMongo(Client side). MergeBox is responsible for figuring out what needs to be updated in the client and does this by holding a copy of the data that is also on the client. So when you have a lot of clients, that can be a lot of data. It keeps the data in sync by reading the oplog tail of mongodb. This works great until too much data
16:38 <the_voice_> coems in at once. What used to happen is this would crash all of your app servers because they couldn't handle say 10000 inserts at once, the way they fixed this is by making mergebox stop reading the oplog when it gets too long and resort to pinging mongodb(it originally just pinged)
16:40 codestorm joined
16:40 amclain joined
16:41 <the_voice_> The only fix when it gets too big is creating another mongodb for the huge tables and not using the meteor "magic". You can read about it here tristan__ https://forums.meteor.com/t/oplog-tailing-too-far-behind-not-helping/2235/3
16:42 <micmus> replicating whole database to the client sounds like the ultimate db coupling
16:42 <dch> So I have this function Carrot.get(chan) which I want to drop into my Stream.repeatedly/2 as a generator, is there a way to capture it with the argument? &Carrot.get(ch) obv is wrong.
16:42 <the_voice_> it's not the whole database, you have a pub/sub system, but in something like a chat that's a lot of data
16:43 aniketd joined
16:45 <the_voice_> And if you have a 100 clients with each say a 100 messages that have been loaded into miniMongo that means that your server is now holding and diffying 10K messages with the database all the time - and it only gets bigger.
16:45 <tristan__> the_voice_: hm, looks like rocketchat doesn't use oplog tailing by default tho
16:45 <the_voice_> So it's pinging
16:45 <tristan__> I guess
16:46 universa1 joined
16:46 edennis joined
16:46 <the_voice_> That could also be because it's in dev, oplog tailing needs to be on a mongo instance with a replica set
16:46 codestorm joined
16:47 ashishbista joined
16:47 refriedchicken joined
16:48 <edennis> Greetings *.ex! I've got a question regarding multiple phoenix apps in an umbrella: is it possible to run different phoenix versions in two different apps? It seems like it wouldn't be since all deps are in the the top level mix.lock.
16:48 <the_voice_> Anyways tristan__ researching and learning how it worked is what led me to drop it within 6 months and move onto Elixir - so a lot of good came out of it
16:48 <tristan__> don't want to flood this chat with meteor chat :). but I do think a comparison with how an app like this would be done in phoenix and comparison of resources used per-user/message would be interesting
16:48 <tristan__> the_voice_: nice :)
16:49 <the_voice_> tristan__ it wouldn't be close, not really worth it
16:49 <the_voice_> anyways back to Elixir only chat
16:49 raycoll joined
16:50 <edennis> I've just updated one of them to 1.3.0-rc but it looks like I'll need to update both if I want the umbrella to work.
16:50 racycle joined
16:51 <micmus> edennis: in a VM there can exist only a single version of a module (outside of hot upgrades) - unbrella applications run all inside a single VM, so it's not possible to have two different copies of an application
16:51 <edennis> micmus: Very concise answer. Thank you! :)
16:53 rschmukler joined
16:56 daekano joined
16:58 davidw joined
16:59 Guest___ joined
16:59 universa1 joined
17:00 kommen joined
17:04 wsieroci joined
17:04 NeverDie joined
17:06 cdg_ joined
17:07 myronmarston joined
17:11 universa1 joined
17:11 refriedchicken joined
17:15 refriedchicken66 joined
17:17 jeffweiss joined
17:19 rkazak_ joined
17:21 praveen joined
17:23 markh joined
17:24 universa1 joined
17:24 rhnonose joined
17:26 codestorm joined
17:26 MaSven joined
17:29 PaReeOhNos joined
17:29 mattyw joined
17:30 ctp joined
17:30 jerme joined
17:32 rschmukler joined
17:33 milmazz joined
17:34 ariedler joined
17:36 stilldavid joined
17:37 montanonic joined
17:38 ZippoWeb joined
17:43 <ciawal> anyone know why I'd be getting this error suddenly?
17:43 <ciawal> 17:31:47.064 [error] GenServer :tzdata_release_updater terminating / ** (ArgumentError) argument error / :erlang.hd([])
17:43 universa1 joined
17:44 rschmukler joined
17:44 <dch> ^ polymetis knows
17:44 <sahrizv> Hello! How do you folks deal with AWS AutoScalingGroups when using ex_aws?
17:44 dustinfarris joined
17:46 fowlduck joined
17:46 <ciawal> ah I found it
17:47 <edmz> ciawal : what was it?
17:47 <ciawal> https://github.com/lau/tzdata/issues/30
17:48 gokr joined
17:50 cemilowski joined
17:51 codestorm joined
17:52 hahuang65 joined
17:52 keathley joined
17:57 hotpancakes joined
17:59 rschmukler joined
18:00 Guest79874 joined
18:01 dani0_ joined
18:02 bvcosta joined
18:02 MaSven joined
18:03 rschmukler joined
18:04 steffkes joined
18:04 steffkes joined
18:05 jparise joined
18:06 universa1 joined
18:07 edennis joined
18:09 cristianR_ joined
18:12 tomterl joined
18:12 hotpanca_ joined
18:15 Guest67_ joined
18:17 universa1 joined
18:22 Or1on joined
18:23 wsieroci joined
18:23 codestorm joined
18:23 vmoravec joined
18:24 Guest79874 joined
18:25 dani0_ joined
18:26 rkazak_ joined
18:27 jeffweiss joined
18:27 universa1 joined
18:28 vendethiel joined
18:29 NeverDie joined
18:29 oborot joined
18:39 w-t-h_ joined
18:41 <laut> @edmz IANA changed how they host the tz data files. Upgrading the elixir tzdata package to version ~> 0.5.11 solves the problem.
18:41 <edmz> laut : thank you, I saw the issue posted by ciawal
18:42 universa1 joined
18:43 acscherp joined
18:44 dani0_ joined
18:44 Guest79874 joined
18:44 jeffweiss joined
18:54 sahrizv joined
18:55 edennis joined
18:56 hahuang65 joined
18:57 fowlduck joined
18:58 hashpuppy joined
19:00 lexmag joined
19:03 travis-ci joined
19:03 <travis-ci> elixir-lang/elixir#13758 (master - 3f2246b : Robin Saleh-Jan): The build passed.
19:03 <travis-ci> Change view : https://github.com/elixir-lang/elixir/compare/03722c1038aa...3f2246bd1bc1
19:03 <travis-ci> Build details : https://travis-ci.org/elixir-lang/elixir/builds/209078276
19:03 travis-ci left
19:06 universa1 joined
19:14 ashishbista joined
19:17 codestorm joined
19:18 sid_fules joined
19:19 Guest42583 joined
19:19 universa1 joined
19:19 montanonic joined
19:21 rschmukler joined
19:22 hotpancakes joined
19:23 hotpanca_ joined
19:26 willyk joined
19:28 pedroassumpcao joined
19:29 codestorm7 joined
19:30 PaReeOhNos joined
19:31 fowlduck joined
19:34 universa1 joined
19:35 wsieroci joined
19:37 hotpancakes joined
19:40 craigp joined
19:43 Cohedrin joined
19:43 keathley joined
19:47 arathunku joined
19:47 rschmukler joined
19:48 willyk joined
19:50 byte512 joined
19:59 kyrix joined
20:00 mattyw joined
20:01 jerme left
20:03 vendethiel joined
20:05 pedroassumpcao joined
20:05 cdg joined
20:10 pedroassumpcao left
20:11 cdg joined
20:11 mattyw joined
20:11 codestorm joined
20:12 cdg joined
20:12 trevoke joined
20:13 cdg_ joined
20:13 rschmukler joined
20:14 cdg_ joined
20:14 dani0_ joined
20:15 mattyw joined
20:17 cdg joined
20:17 rhnonose joined
20:17 cdg_ joined
20:21 molloy left
20:21 fowlduck joined
20:24 <iFire> In ecto, can you tell migrations to copy column contents?
20:24 <iFire> afterwards which you drop the column
20:29 mattyw joined
20:30 squallstter joined
20:33 fowlduck joined
20:33 <ciawal> you can use execute
20:35 vendethiel- joined
20:37 oborot joined
20:37 rschmukler joined
20:42 <Zarathu> iFire: copy them where? just curious
20:42 <Zarathu> (but yeah, almost certainly use execute())
20:42 <iFire> trying execute
20:42 <iFire> Zarathu: a new table
20:42 <Zarathu> ah, then yeah, use execute
20:43 dimitarvp joined
20:46 mattyw joined
20:47 jparise joined
20:48 montanonic joined
20:52 codestorm joined
20:54 hotpancakes joined
20:59 sid_fules joined
21:00 josevalim_ joined
21:00 rschmukler joined
21:04 hotpanca_ joined
21:04 cdg joined
21:06 edennis joined
21:12 <ericmj> any ideas on how to create an optional path prefix to a bunch of routes in phoenix?
21:12 rschmukler joined
21:12 sahrizv joined
21:13 modran joined
21:14 cdg_ joined
21:17 <trevoke> Optional path as in "this route could be http://foo.com/bar/baz or http://foo.com/baz" ?
21:18 hotpancakes joined
21:18 davidw joined
21:18 daekano joined
21:19 <Ankhers> josevalim, micmus: Sorry, but what did we settle on for the association names? Was it belongs_to_many, array_has_one and array_has_many?
21:19 montanonic joined
21:19 <josevalim> array_belongs_to, array_has_one and array_has_many as temporary names for now
21:19 <Ankhers> Thanks.
21:20 <josevalim> ericmj: for path <- ["/foo", ]
21:20 <josevalim> for path <- ["/foo", "/foo/bar"] do scope path: path do __ROUTES__ end end
21:20 <josevalim> ?
21:21 <ericmj> neato, i will try that
21:22 wsieroci joined
21:23 acscherp joined
21:24 <ericmj> josevalim: it worked, thanks
21:25 <ericmj> i didn’t think i could interpolate in the route string
21:25 <ericmj> but scope also works
21:30 praveen joined
21:30 wsieroci joined
21:38 <micmus> Can we put some more warnings somewhere that included_applications is not what people want and that it should be avoided unless you really know what you're doing?
21:40 cs7 joined
21:41 <cs7> what's does a trailing colon signify? As in message:
21:42 <sorentwo> That message is an atom, likely in a keyword list or a map
21:42 willyk joined
21:43 bitshift joined
21:44 daekano joined
21:44 hotpancakes joined
21:46 codestorm joined
21:49 <cs7> don't atoms have a leading colon, not a trailing one?
21:50 <ciawal> it's an alternative syntax for maps/keyword lists with atom keys, cs7
21:50 <ciawal> %{"foo" => 1}, %{foo: 1}
21:50 dimitarvp` joined
21:51 montanonic joined
21:51 <cs7> oh, i see. so message: here is also an atom? render conn, "show.html", messenger: messenger
21:51 codestorm joined
21:52 <cs7> (messenger:)
21:52 <ciawal> that's an implicit keyword list at the end there
21:53 <ciawal> it's equivalent to this:
21:53 <ciawal> render conn, "show.html", [messenger: messenger]
21:53 <cs7> ok, thanks ciawal and sorentwo
21:56 celyr joined
21:57 smeade joined
21:59 praveen joined
21:59 nahtnam joined
21:59 <vans163> is there elixir equivalent to erlangs catch 1/0. ?
22:04 wtetzner joined
22:05 sfbw joined
22:05 zabirauf joined
22:05 sfbw_ joined
22:08 edennis joined
22:09 kommen joined
22:10 hotpancakes joined
22:10 <ericmj> vans163: no, and that’s by design
22:12 <vans163> case catch(it_can_crash) of ok -> yay; {'EXIT'.. -> crashed; _ -> everything_else end ericmj: any idea what the rationale was to removing it?
22:12 <vans163> without it, it forces you to double scope calls that can crash
22:12 <vans163> case scope_1_sanity_check of ok -> case scope_2...
22:13 <ericmj> it was never implemented so it was never removed
22:13 <vans163> mm any idea why the design does not consider it?
22:13 <ericmj> because there is no distinction between errors and none-errors
22:13 rschmukler joined
22:13 <vans163> non-error has 'EXIT' as the first tuple member
22:13 <vans163> aka it crashed
22:14 robotika left
22:14 <vans163> so thats a distinction alreayd
22:14 <ericmj> if you get an exit signal yes, but not for other errors
22:14 <ericmj> also :EXIT is a valid non-error value
22:15 <vans163> you can say the same thing about :undefined
22:15 <ericmj> :undefined is not an error value
22:15 <ericmj> that is exactly what I am saying, by making catch explicit there is 100% distinction between what is an error and what is not
22:16 <vans163> :EXIT is a valid value (non-error) :undefined is a value (not an error non-error) .. x.x
22:16 <vans163> just parsed your sentence :P
22:16 <ericmj> yes, they are both valid values that can be interpreted as not being errors
22:16 <ericmj> that’s why it’s bad when it’s not in explicit
22:16 <ericmj> which is why elixir makes it explicit
22:16 <josevalim> iirc, catch was added to Erlang before it had try/catch
22:17 <ericmj> erlang literally has bugs in its standard library right now because catch hides errors
22:17 <vans163> the result of this good/evil conflict is now you need to double scope things resulting in messier code resulting in more human bugs
22:17 <josevalim> catching errors and exit in Elixir is uncommon and most times not recommended, there is no reason to provide a shortcut syntax for it
22:17 <josevalim> double scope things?
22:18 <vans163> if you need to call a registered pid for example
22:18 <vans163> you can catch gen_server:call(...)
22:18 <vans163> otherwise you need to first scope, check if pid exists, second scope call it
22:18 <josevalim> that doesn't make sense
22:18 <ericmj> you also catch all other reasons why gen_server.call failed
22:19 <josevalim> you can still rescue all errors if you want to
22:19 <ericmj> also, you have different semantics in your example
22:20 <vans163> case GenServer.call({:global, "the_reg_name"}, :hi) do :success -> :yay; :error -> :boo end results in full process crash if global pid not registered
22:20 <vans163> adding a simple catch case catch GenServer.call .... and you can handle the {'EXIT'.. in the case
22:21 <vans163> otherise we need to do case :global.whereis_name("the_reg_name") do :undefined -> :same_as_EXIT; pid -> case GenServer.call(pid, :hi) ...
22:21 <ericmj> No, that’s not the same thing
22:21 <ericmj> elixir still has catch with try do … catch
22:21 <ericmj> your second example has a race condition
22:22 <josevalim> vans163: https://gist.github.com/josevalim/2d1bfee0ce6405a572b080f3d3c365c5
22:22 <vans163> ericmj: hum.. yea it indeed has a race condition. i just wanted to reduce loC
22:22 <ericmj> https://hexdocs.pm/elixir/Kernel.SpecialForms.html#try/1-catching-throws-and-exits
22:22 <vans163> i hate having to read through try/catch blocks
22:23 <josevalim> vans163: that's exactly the point for not making it smaller
22:23 celyr joined
22:23 <josevalim> you should hate using them because you are not supposed to use them
22:23 <ericmj> i hate bugs because of catch silently catching all errors
22:23 <vans163> josevalim: hey thanks for that link, thats kinda a try-catch-case all in one!
22:24 rschmukler joined
22:24 <josevalim> yes, it keeps everything explicit. what is the success, what is failure and what is error, like it should be
22:24 <vans163> pretty clean to read
22:24 Ven joined
22:25 <micmus> I also believe the OTP team considers the bare catch in bad taste
22:25 <micmus> I saw in couple PR requests to remove it and convert to the explicit try-catch
22:25 <ericmj> it will also bubble the error up if you don’t have a catch clause for it instead of raising a function clause error
22:27 <vans163> not seeing errors is really bad, i try to avoid it, but many scopes/nests is bad also for human error bugs
22:27 <vans163> OTP afaik already has deep nests in many functions like try case case catch end etc
22:28 <vans163> i think the sourcecode for the proc_lib gen_server loop is like.. 10 nests deep
22:30 <vans163> but damn.. erlang needs elixirs try catch else now :P
22:31 <vans163> such an elegant solution
22:31 <alisdair> it has it?
22:31 <micmus> to be honest, try is very rare in elixir - e.g. in ecto for 18kLOC there are 14 trys
22:32 montanonic joined
22:32 <vans163> alisdair: i never noticed.. try of catch end right?
22:32 <vans163> always something new to learn x.x
22:33 <alisdair> yeah, i just translated jose's example into erlang at the same link
22:35 <vans163> micmus: yea i rarely use try too, but when you need to do like an rpc call, it gets annoying to handle all the corner cases, tho I try to not use RPC calls in the first place.. need to borrow somes ideas from LASP
22:36 <vans163> for example you have N forward facing webservers, who need to call into the core cluster that handles user registration
22:36 <vans163> the core is on seperate nodes from the forward facing webservers
22:37 <vans163> try GenServer.call(:register) catch :the_dc_is_on_fire_return_522 else :email_exists -> 200, user_registered; :ok -> 200, ok end
22:38 <vans163> getting rid of that rpc call would be ideal, but im not sure how atm
22:40 <vans163> in the catch ofcourse log the error, perhaps distinguish between a downed node and a crash
22:41 rhnonose joined
22:46 codestorm joined
22:50 jerel joined
22:54 rhnonose joined
22:55 PaReeOhNos joined
22:55 davidw joined
22:56 icecreamcohen joined
23:03 dj_goku joined
23:10 rschmukler joined
23:10 icecreamcohen_ joined
23:11 <cs7> josevalim and other contributors: Hallmark labs is jumping into elixir in a big way
23:11 <dimitarvp> cs7: Hallmark as the TV?...
23:11 inoas joined
23:13 <cs7> Not exactly, Labs produces e-card, print on demand, and streaming video
23:13 <cs7> e-cards*
23:14 <dimitarvp> oh.... https://www.hallmarkecards.com/ <- this one then?
23:15 <cs7> yes, along with Ink & Main and the feeln streaming service
23:16 rhnonose joined
23:17 pliniker joined
23:20 NeverDie joined
23:25 sid_fules joined
23:28 myers joined
23:37 travis-ci joined
23:37 <travis-ci> elixir-lang/elixir#13760 (master - f800080 : José Valim): The build passed.
23:37 <travis-ci> Change view : https://github.com/elixir-lang/elixir/compare/3f2246bd1bc1...f80008032ce6
23:37 <travis-ci> Build details : https://travis-ci.org/elixir-lang/elixir/builds/209165599
23:37 travis-ci left
23:39 montanonic joined
23:40 codestorm joined
23:40 rkazak_ joined
23:40 oborot joined
23:44 dustinfarris joined
23:46 mattyw joined
23:49 oborot joined
23:54 icecreamcohen joined
23:55 sid_fules joined