« Back to channel list

#elixir-lang - 15 May 2019

« Back 1 day Forward 1 day »
[00:01:43] orbyt_: has joined #elixir-lang
[00:03:30] griffinbyatt: has joined #elixir-lang
[00:03:30] fastfresh: has joined #elixir-lang
[00:05:03] nickjj: the reason i ask is because i had Float.to_string used somewhere and it told me to use :erlang.float_to_string/2 which was definitely a help, but the erlang docs had this as an example: float_to_binary(7.12, [{decimals, 4}]
[00:05:23] nickjj: but if you use that example in elixir (with the :erlang. of course) then mix format still throws a warning about decimals not being defined
[00:06:08] nickjj: it ended up being a witch hunt resulting in finally figuring out this worked: :erlang.float_to_binary(7.12, [decimals: 4]) but that was no where to be found in erlang's docs about the function
[00:11:36] griffinbyatt: "decimals" is an atom in the erlang example
[00:11:54] griffinbyatt: And your updated version properly treats it as an atom. Not sure if you considered that.
[00:13:25] nickjj: griffinbyatt, so it's like we're calling an erlang function but passing in an elixir formatted argument?
[00:14:01] griffinbyatt: You can just think of :erlang as any other module
[00:14:08] griffinbyatt: So it's all Elixir
[00:14:30] nickjj: ok that helps, i went at it from "using erlang function? follow the erlang docs exactly"
[00:14:55] griffinbyatt: Yeah, I imagine it trips a lot of people up :)
[00:15:46] nickjj: it would be curious to see if the warning could be converted to real code tho, if it's able to figure out the correct function and arity, is it a lot more work to fill in the args to be valid elixir?
[00:16:13] nickjj: not as an in place code swap, but in the warning's output text
[00:17:46] griffinbyatt: I think there would be deminishing returns and you ultimately have to stop somewhere
[00:18:38] griffinbyatt: But the core team is pretty open to feature ideas and questions, so if you feel strongly at all about the issue you could bring it up on the mailing list
[00:21:13] nickjj: i don't feel that strongly about it because a deprecation warning like this comes up once in a blue moon
[00:25:13] duaneb: has joined #elixir-lang
[01:00:08] Hawkheart: has joined #elixir-lang
[01:02:59] mblarsen: has joined #elixir-lang
[01:06:18] carldd: has joined #elixir-lang
[01:11:29] Havvy: has joined #elixir-lang
[01:16:04] orbyt_: has joined #elixir-lang
[01:46:33] tomterl: has joined #elixir-lang
[02:16:32] gabrielpoca: has joined #elixir-lang
[02:35:41] ur5us: has joined #elixir-lang
[03:09:00] aither: has joined #elixir-lang
[03:09:31] Saukk: has joined #elixir-lang
[03:16:24] pera: has joined #elixir-lang
[03:20:42] carldd: has joined #elixir-lang
[03:21:56] mbuf: has joined #elixir-lang
[03:32:41] pera: has joined #elixir-lang
[03:38:23] jegaxd26: has joined #elixir-lang
[03:47:32] harrow: has joined #elixir-lang
[04:13:40] jegaxd26: has joined #elixir-lang
[04:49:04] FancyEagle: has joined #elixir-lang
[04:49:28] FancyEagle: has joined #elixir-lang
[04:56:02] gvaughn: has joined #elixir-lang
[04:57:31] fastfresh: has joined #elixir-lang
[05:09:15] harrow: has joined #elixir-lang
[05:13:36] voltone: has joined #elixir-lang
[05:22:53] hypercore: has joined #elixir-lang
[05:30:56] kyrylo: has joined #elixir-lang
[06:00:20] jegaxd26: has joined #elixir-lang
[06:00:33] ur5us: has joined #elixir-lang
[06:02:28] gvaughn: has joined #elixir-lang
[06:06:39] hypercore: has joined #elixir-lang
[06:10:20] meredith: has joined #elixir-lang
[06:11:14] za1b1tsu: has joined #elixir-lang
[06:23:31] hypercore: has joined #elixir-lang
[06:25:14] lexmag: has joined #elixir-lang
[06:50:04] garazdawi: has joined #elixir-lang
[06:51:00] Schmuserkadser: has joined #elixir-lang
[06:51:45] m1dnight_: has joined #elixir-lang
[06:52:39] Schmuserkadser: Guys a question about LiveView Callbacks: When do i use handle-info/call/event?
[06:53:10] hypercore: has joined #elixir-lang
[06:54:43] fantasticsid: has joined #elixir-lang
[06:56:03] proteusguy: has joined #elixir-lang
[06:57:33] PragTob: has joined #elixir-lang
[07:03:39] squall: has joined #elixir-lang
[07:07:18] josevalim: good morning fellow cultists!
[07:07:39] josevalim: Schmuserkadser: handle_info is for messages received from other processes/live views (think of them as server internal)
[07:07:47] josevalim: handle_event is for messages received from the client
[07:08:02] josevalim: does live view even have handle_call?
[07:08:49] Nicd-: ACTION sings his praises to the cult leader
[07:10:07] Nicd-: ACTION sacrifices two of his youngest processes on the Altar of Elixir and wishes for a good code harvest this year
[07:12:33] proteusguy: has joined #elixir-lang
[07:14:21] targaf: has joined #elixir-lang
[07:20:09] Schmuserkadser: @josevalim yes, live view has an handle_call callback. Thank you for the explanation :D
[07:20:18] gvaughn: has joined #elixir-lang
[07:20:59] josevalim: Schmuserkadser: so handle_call is a synchronous operation, like you ask a question and the process replies to it. it is for use within the server too (like handle_info, but info is async)
[07:22:33] josevalim: Schmuserkadser: so the reason everything is a {:noreply, ...} is because handle_call is {:reply, ...} :)
[07:24:41] kawen: has joined #elixir-lang
[07:32:35] hypercore: josevalim: good morning glorious leader
[07:36:14] josevalim: hahaha, it is probably better to stop with the joke before someone things we are serious
[07:36:24] josevalim: and good morning
[07:40:58] serafeim: has joined #elixir-lang
[07:49:44] gabrielpoca: has joined #elixir-lang
[07:51:29] serafeim: good morning
[07:51:41] serafeim: what's the best way to restart cowboy started with mix phx.server ?
[07:51:51] serafeim: i.e i want to deploy changes
[08:06:41] josevalim: usually the best solution is around doing rolling deployments, or canary, or blue/green
[08:06:53] josevalim: it is something you address at a higher level and not at the language level
[08:08:22] serafeim: josevalim yes I understand but for now I don't want to mess with that. I want something more quick n dirty i.e just pull my latest changes from VCS and then somehow "restart" the server
[08:08:41] josevalim: you can kill the process and call mix phx.server again
[08:08:56] serafeim: I guess I can do it through supervisord by killing and then restarting the process but I wanted to know if there's a better solution like sending a signal or something
[08:09:32] Nicd-: killing is sending a signal :)
[08:09:34] serafeim: josevalim ok i'll fall back to killing and retaring the server thank you !
[08:09:57] serafeim: Nicd- lol yes IIRC it's signal number 9
[08:10:11] Nicd-: usually something like SIGTERM is sent first
[08:10:38] Nicd-: SIGKILL is last resort
[08:10:54] serafeim: but i guess you know what I mean, some servers support receiving a signal (like SIGHUP) to restart or reread their cfg etc
[08:14:08] user2: has joined #elixir-lang
[08:24:10] josevalim: Serafeim: you could do that if you want. you can listen to OS signals and then call :init.restart
[08:24:25] josevalim: that will shutdown all applications and invoke mix phx.server again, in the same OS process
[08:24:31] m1dnight_: has joined #elixir-lang
[08:24:44] josevalim: but i don't think that will give you anything extra compared to killing and start a new one
[08:25:31] serafeim: josevalim that's good to know thank you
[08:27:31] serafeim: is there a standard way to listen to OS signals from elixir ?
[08:29:42] ur5us: has joined #elixir-lang
[08:34:26] josevalim: you need to register a erl_signal_server: http://erlang.org/doc/man/kernel_app.html#erl_signal_server
[08:35:24] josevalim: I found this article with a sample implementation: https://medium.com/@ellispritchard/graceful-shutdown-on-kubernetes-with-signals-erlang-otp-20-a22325e8ae98
[08:39:30] serafeim: josevalim thank you very much !
[08:45:27] hypercore: guys should i just use a non-LV template + javascript (e.g. react) for my form?
[09:03:25] mbuf: has joined #elixir-lang
[09:05:46] proteusguy: has joined #elixir-lang
[09:06:07] gvaughn: has joined #elixir-lang
[09:14:04] wonko7: has joined #elixir-lang
[09:19:20] Avinash: has joined #elixir-lang
[09:22:19] ur5us: has joined #elixir-lang
[09:23:07] uks: has joined #elixir-lang
[09:25:46] targaf: has joined #elixir-lang
[09:29:46] mbuf: has joined #elixir-lang
[09:30:40] 21WAAD7AF: has joined #elixir-lang
[09:36:18] ur5us: has joined #elixir-lang
[09:38:47] josevalim: why? is LV not working?
[09:38:50] josevalim: LV should be fine for forms
[09:40:22] ur5us: has joined #elixir-lang
[09:41:10] Nicd-: I believe they are referring to this: https://elixirforum.com/t/phx-click-on-field-is-causing-all-other-fields-to-reset-in-new-html-leex-liveview-template/22415?u=nicd
[09:44:43] targaf: has joined #elixir-lang
[09:45:39] Gika: has joined #elixir-lang
[09:50:39] hypercore: josevalim: it works great if the schema/fields are relatively simple (e.g. simple text_inputs, etc), but as soon as you want the forms to be dynamic or on-trivial (e.g. showing custom inputs triggered by a phx-click event), you start running into problems like input fields reseting (if no changeset values exists, like in new.html.leex forms) or the js-enhanced input fields reseting on phx_change:
[09:51:48] hypercore: the closest i've gotten so far is using observation mutations and removing phx_change: :validate from my form, but I still have the remaining issue that Nicd- linked above
[09:55:27] hypercore: so basically if you are using a standard form input (text_input, select, etc), there are no issues. But as soon as you want to use an enhanced input (e.g. typehead.js), or you have intermediate inputs that you use to calculate a final input (e.g. <input name="author[firstname]"> <input name="author[lastname]"> generates author.fullname in the controller/changeset), you're going to run into these problems
[10:17:57] gvaughn: has joined #elixir-lang
[10:27:40] voltone: has joined #elixir-lang
[10:37:07] KeyJoo: has joined #elixir-lang
[10:38:47] josevalim: hypercore: i understand the javascsript issue but i don't the answer for that yet (chris may know)
[10:38:56] josevalim: but the second one seems more like a design issue
[10:39:13] josevalim: you should convert it to a fullname only at the end of the process and not as input in your changeset
[10:39:19] josevalim: hypercore: ^
[10:39:33] Schmuserkadser: josevalim: When I want to communicate between different live views. Do i need the Phoenix.Channel.Server API for this?
[10:39:55] josevalim: Schmuserkadser: no. you usually use Phoenix.PubSub
[10:40:06] josevalim: so you broadcast on a topic and the other live view listens to that topic
[10:41:09] Schmuserkadser: Alright. But for what purpose is then Phoenix.Channel.Server?
[10:44:19] voltone: has joined #elixir-lang
[10:44:39] hypercore: josevalim: hmm not sure what other design to go with that would resolve the issue. I'm not sure if it should be happening, but triggering my phx-click event (which shows or hides different temporary inputs which are used to create a final input on the backend) clears out all other field values if phx_change: :validate is not set. Are you saying this shouldn't happen?
[10:51:07] hypercore: logging socket in my handle_event function shows all changeset fields (except those from the element that has the phx-click attribute)
[10:51:53] josevalim: Schmuserkadser: Phoenix.Channel.Server is an implementation detail, you are not supposed to care about it
[10:52:34] josevalim: hypercore: my point is that this idea of "final input" should not be coupled with changesets
[10:52:48] josevalim: as long as you keep firstname and lastname in the changeset, everything should work
[10:53:05] josevalim: the computing of "final input" should be done elsewhere outside of the changeset
[10:54:04] hypercore: josevalim: ok, but that would still require phx_change: :validate to be set no?
[10:54:32] josevalim: i thought we were talking about live view
[10:54:51] josevalim: but if the problem happens outside of liveview too, then it should be addressed there too
[10:55:22] hypercore: josevalim: isn't phx_change (in <%= form_for %>) a live view thing?
[10:55:42] josevalim: it is, but changesets aren't
[11:00:55] Schmuserkadser: josevalim: In Live View you can safe form information in Connection struct as well as in Changesets. Do i need set the Connection like live_render(conn, MyApp.LiveView, %{conn => conn}) ? Because thats not working.
[11:00:56] serafeim: is it possible to make my cowboy (phx.server) listen to a unix socket instead of a tcp one? Is it recommnded / good practice ?
[11:01:15] josevalim: no, you cannot pass the whole connection
[11:01:21] josevalim: you have to explicitly pass the data you want to load
[11:01:50] josevalim: if you think about it, it doesn't make sense to sstore a GET connection into a websocket
[11:01:53] josevalim: you need to transfer the data
[11:01:59] serafeim: i have a single server that will host multiple apps so I usually create a unix socket for each app (named after the app's name) ; if I need to use tcp sockets i'll need to configure the port somehow and I'd prefer to avoid that
[11:03:22] Schmuserkadser: josevalim: Hmm. I'll try it with passing data directly. ty
[11:03:55] josevalim: Serafeim: i thinnk there is a way to listen on a socket but i don't quite remember how. check plug_cowboy docs
[11:04:26] Gika: has joined #elixir-lang
[11:04:34] harfangk: has joined #elixir-lang
[11:05:42] serafeim: josevalim yes it mentions something here https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html thanks
[11:06:42] ur5us: has joined #elixir-lang
[11:12:34] targaf_: has joined #elixir-lang
[11:13:22] xlb: has joined #elixir-lang
[11:16:14] tnez: has joined #elixir-lang
[11:17:14] voltone: has joined #elixir-lang
[11:23:37] duaneb: has joined #elixir-lang
[11:23:46] nickjj: are there any plans to improve gaining insights on test coverage as a core elixir feature?
[11:24:17] nickjj: for example, --cover helps but it doesn't show really important things like what lines aren't covered
[11:27:34] tomaz_b: has joined #elixir-lang
[11:30:39] ericmj: there are other tools that visualize the coverage report better
[11:31:49] nickjj: ericmj, i'm in the process of installing excoveralls now, hopefully it lets you see lines from the command line
[11:32:10] ericmj: mix coveralls.detail --filter general.ex
[11:32:22] josevalim: --cover does generate a report though with files not called, no?
[11:32:22] ericmj: the default coverage tool also shows lines but maybe not in the cli
[11:34:50] nickjj: josevalim, files or lines?
[11:35:21] nickjj: the main issue is --cover shows 88% coverage for a specific module but i have no idea what 12% of the module isn't tested without manually tracing it (which takes a lot of time)
[11:37:22] gvaughn: has joined #elixir-lang
[11:37:45] Schmuserkadser: josevalim: When i want to use form_for with a Connection can i need my current Connection oder do i need setup an empty one like %Plug.Conn{} ?
[11:40:07] nickjj: ericmj, if i run that command it just shows me the general table with no details, but if i remove the --filter argument then it shows me the lines however it's for the entire entire suite not a specific file
[11:40:41] nickjj: your command is accurate too, it's taken right from their docs
[11:41:10] kyrylo: has joined #elixir-lang
[11:42:48] ericmj: nickjj: --cover generates a directory cover/ with the details of each file
[11:44:17] ericmj: you can find the docs by running `mix help test`
[11:44:29] nickjj: ericmj, ah i see, so i guess coveralls isn't needed here
[11:45:12] micmus: Also on OTP 22 the generated reports are much nicer
[11:45:30] nickjj: let me ask you this, are you open to suggestions on tweaking the --cover output slightly?
[11:46:02] nickjj: if --cover always dumps the html, can you make the modules clickable links so on module click, it opens your default browser and loads that file so you can see it?
[11:46:34] ericmj: isn't it your terminal that creates links?
[11:47:26] ericmj: or can you create links with ANSI codes or something like that?
[11:47:31] nickjj: yeah true, stupid question sorry, there's no way your terminal is going to be able to understand that Foo.HelloController is a link
[11:47:48] ericmj: not that I know of
[11:48:11] ericmj: maybe if you have something like file:///...
[11:48:42] nickjj: right, that would work but then the output goes from this awesome single line concise module path to an ultra disgusting multi-line file path
[11:49:57] nickjj: but it's nice to see this info is here, if i get bored enough one day i might write a bash script to grep the cover/ directory for red lines
[11:50:26] craigp_: has joined #elixir-lang
[11:52:48] harfangk: has joined #elixir-lang
[12:26:35] Phylock: has joined #elixir-lang
[12:26:44] duaneb: has joined #elixir-lang
[12:30:49] dimitarvp: has joined #elixir-lang
[12:41:55] mbuf: has joined #elixir-lang
[12:51:43] gvaughn: has joined #elixir-lang
[12:55:23] DTZUZO: has joined #elixir-lang
[13:04:38] duaneb: has joined #elixir-lang
[13:12:37] either|or: has joined #elixir-lang
[13:23:01] isHavvy: has joined #elixir-lang
[13:25:27] gg1_: has joined #elixir-lang
[13:33:09] voltone: has joined #elixir-lang
[13:39:17] harfangk: has joined #elixir-lang
[13:49:14] greengriminal: has joined #elixir-lang
[13:50:15] gvaughn: has joined #elixir-lang
[13:50:19] __charly__: has joined #elixir-lang
[14:19:01] AnimalClatter: has joined #elixir-lang
[14:19:05] warmwaffles: has joined #elixir-lang
[14:21:53] nickjj: does anyone know what would cause test --cover to mark a function's definition as untested even though the function is being called in a test? in this case it's a simple changeset function that i'm calling
[14:22:36] AnimalClatter: Hello! Can anyone please explain to me the git branching/tagging model used by Elixir and Phoenix on GitHub, or point me to a reference it follows? Thanks.
[14:35:53] drincruz_: has joined #elixir-lang
[14:35:58] nicholasruunu: Isn't it just github flow with semver?
[14:37:02] pera: has joined #elixir-lang
[14:37:20] Adkron: has joined #elixir-lang
[14:40:23] Adkron: has joined #elixir-lang
[14:41:15] wsieroci: has joined #elixir-lang
[14:44:40] AnimalClatter: That's what I assumed initially, but I guess I misunderstand GH flow, because I started looking for some sort of "dev" branch that 1.9 is being developed on, but didn't see one, and did see commits directly to master
[14:44:46] AnimalClatter: Obv a newb here
[14:45:52] nicholasruunu: Github flow is not the same as Git flow, the latter uses a dev branch but the former does not.
[14:46:45] micmus: AnimalClatter: I don't think there's any document - the approach is simple - master is for next release, every minor has a branch, so that patches are easy to do and every release has a tag
[14:47:30] craigp_: has joined #elixir-lang
[14:48:32] AnimalClatter: Thanks nicholasruunu and micmus. 1.9 is a minor in SemVer, right? Is there a branch for 1.9 that I'm not seeing? Or is the branch created after the release?
[14:49:06] kyrylo: has joined #elixir-lang
[14:49:21] micmus: master is 1.9 - since 1.9 wasn't released yet - master is always next release
[14:50:11] AnimalClatter: So when it's released, a branch will be created for it? Sorry for the super simple and concrete questions, but I appreciate the answers
[14:50:53] micmus: Not necessarily. Master might stay 1.9 until at some point development on 1.10 starts - then a 1.9 branch is forked and master starts tracking 1.10. Though usually nowadays I think it's forked immediately at first rc release
[14:51:23] AnimalClatter: Ahh. I think that was the piece I was missing. Thanks a lot.
[14:55:26] kyrylo: has joined #elixir-lang
[14:59:34] pera: has joined #elixir-lang
[15:04:37] benwilson512: DUUUDE it works
[15:04:49] benwilson512: phoenix live view + subscriptions, it's so good looking
[15:09:25] voltone: has joined #elixir-lang
[15:09:51] Gazler: benwilson512: Awesome, I was thinking about that combo earlier today.
[15:09:59] benwilson512: yeah so in our case
[15:10:06] benwilson512: we have this giant platform with a graphql API
[15:10:10] benwilson512: and an internal event log
[15:10:20] benwilson512: we want to build some live UIs, but we don't want to put that code base in the platform
[15:10:45] Gazler: Are all your changes triggered as mutations?
[15:10:48] benwilson512: so we've spiked a UI as a dedicated phoenix application w/ live view, that makes API calls via graphql to your platform
[15:10:59] benwilson512: we drive subscription publicatino off the event log
[15:11:13] benwilson512: since there are data feed changes that aren't graphql mutations
[15:11:19] Gazler: publicatino is the name for my next library!
[15:11:38] benwilson512: "Auto correct hates him!"
[15:11:59] Gazler: So your event log triggers a subscription event?
[15:12:16] benwilson512: or a publication event strictly speaking
[15:12:28] benwilson512: the phoenix UI app does a websocket connection _within_ the live view process
[15:12:31] benwilson512: to the platform server
[15:12:37] benwilson512: and it all just works
[15:12:48] cbw: that sounds awesome
[15:13:01] Gazler: So is your subscription socket client side?
[15:13:21] benwilson512: the UI viewed in the browser is a plain old phoenix live view
[15:13:26] benwilson512: knows nothing about graphql
[15:13:36] benwilson512: the live view itself makes graphql queries
[15:13:41] benwilson512: to load / update the view
[15:13:47] Gazler: Ah, so are you using gun or something?
[15:14:32] benwilson512: https://github.com/mobileoverlord/phoenix_client
[15:14:38] benwilson512: although a mildly forked version
[15:15:51] Gazler: Yeah, I am not surprised that it works, but I am pleased to hear it. :)
[15:16:07] benwilson512: not surprised at all either, just exciting to see it come together
[15:16:40] Gazler: It's nice to be able to separate out your back end.
[15:18:33] drewolson: has joined #elixir-lang
[15:21:11] Gazler: Whoa, is the enough training at Elixir Conf this year? https://elixirconf.com/2019
[15:25:02] voltone: has joined #elixir-lang
[15:30:57] icecreamcohen: has joined #elixir-lang
[15:32:45] icecreamcohen: has joined #elixir-lang
[15:37:24] voltone: has joined #elixir-lang
[15:39:27] warmwaffles: has joined #elixir-lang
[15:50:25] BitBot: has joined #elixir-lang
[16:05:47] AnimalClatter: has left #elixir-lang: ("ERC (IRC client for Emacs 26.1)")
[16:08:21] jimmyrcom: has joined #elixir-lang
[16:16:12] Gika: has joined #elixir-lang
[16:50:48] arpunk: has joined #elixir-lang
[17:18:53] Saukk: has joined #elixir-lang
[17:22:32] mahmudov: has joined #elixir-lang
[17:24:29] kapilp: has joined #elixir-lang
[17:35:14] sinni800: i have a native database in c which does some kind of image recognition thing, doesn't matter really. but my interaction with it is either over TCP or over STDIN/OUT. i think i can probably handle both the same (as a set of streams) since both also take the same kind of input and output formats.
[17:35:14] sinni800: basically what it is is i send commands with image data and get some answer that needs to be string parsed.
[17:35:15] sinni800: i made an application in Go that can speak to the db, has connection pools and pools of processes (i need both), etc. but i think me doing all the scalability manually is not the best thing i could do, so i want to recode it in elixir.
[17:35:15] sinni800: anyway, I am not sure how i am going to implement some of these "low level" building blocks - specifically opening a process to talk to it with in out, mixed with ascii and binary, talking to a raw tcp server, also mixed ascii and binary and including things like timeouts...
[17:35:15] sinni800: anyone know something to refer to to solve these first low level problems? after that i can put these solutions in pools of connections and processes and slowly build upwards
[17:35:17] wilo[m]: has left #elixir-lang: ("Kicked by @appservice-irc:matrix.org : Idle kick: User has been idle for 30 days.")
[17:40:27] m1dnight_: My first guess is ports.
[17:40:54] m1dnight_: If you are going to pool in front of the socket/stdin a port is perfect for this
[17:46:53] aalmazan: has joined #elixir-lang
[17:52:21] jeffweiss: has joined #elixir-lang
[17:58:13] kamidev[m]: has left #elixir-lang: ("Kicked by @appservice-irc:matrix.org : Idle kick: User has been idle for 30 days.")
[18:01:15] pera: has joined #elixir-lang
[18:01:47] drincruz_: has joined #elixir-lang
[18:02:01] greengriminal: has joined #elixir-lang
[18:02:22] netrino: has joined #elixir-lang
[18:04:54] josevalim: I think whatyouhide had some blog posts on writing binary protocols that use tcp i think?
[18:07:55] squall: has joined #elixir-lang
[18:08:40] tristanm_: looking at a kafka client might help. I have one but its erlang. pretty sure there is a pure Elixir one. I'd suggest using https://github.com/lpgauth/shackle -- used that for my client
[18:14:07] whatyouhide: https://andrealeopardi.com/posts/connection-managers-with-gen_statem/ and https://andrealeopardi.com/posts/handling-tcp-connections-in-elixir/ is what josevalim is probably referring to
[18:17:21] LordPtolemy[m]: has left #elixir-lang: ("Kicked by @appservice-irc:matrix.org : Idle kick: User has been idle for 30 days.")
[18:19:38] rassilon[m]: has left #elixir-lang: ("Kicked by @appservice-irc:matrix.org : Idle kick: User has been idle for 30 days.")
[18:20:12] PragTob: has joined #elixir-lang
[18:21:13] jeffweiss: has joined #elixir-lang
[18:25:54] kyrylo: has joined #elixir-lang
[18:51:13] tutti: has joined #elixir-lang
[18:52:05] Guest42: has joined #elixir-lang
[19:14:15] arpunk: has joined #elixir-lang
[19:16:37] wonko7: has joined #elixir-lang
[19:24:02] jeffro: has joined #elixir-lang
[19:39:17] icecreamcohen: has joined #elixir-lang
[20:02:53] Guest42: has joined #elixir-lang
[20:22:14] Sgeo: has joined #elixir-lang
[20:30:19] DeadTrickster: has joined #elixir-lang
[20:49:31] ur5us: has joined #elixir-lang
[20:54:09] Guest32627: has joined #elixir-lang
[20:55:19] benwilson512: sasajuric: is your phoenix_gen_socket_client still in active use?
[20:55:31] benwilson512: would you accept a PR to make the json codec configurable?
[21:00:00] kyrylo: has joined #elixir-lang
[21:05:11] Adkron: has joined #elixir-lang
[21:06:15] Guest42: has joined #elixir-lang
[21:09:09] ur5us: has joined #elixir-lang
[21:11:48] jeffro: has joined #elixir-lang
[21:16:08] praveenperera: has joined #elixir-lang
[21:16:32] samrose_: has joined #elixir-lang
[21:18:59] Gika: has joined #elixir-lang
[21:28:46] Adkron: has joined #elixir-lang
[21:35:43] pera: has joined #elixir-lang
[21:41:05] Gika: has joined #elixir-lang
[21:47:37] craigp_: has joined #elixir-lang
[21:48:52] __charly__: has joined #elixir-lang
[22:24:45] pera: has joined #elixir-lang
[22:33:35] ur5us: has joined #elixir-lang
[22:43:57] jmiven: has joined #elixir-lang
[23:08:02] conceivably: has joined #elixir-lang
[23:14:26] MissingNoIOI: has joined #elixir-lang
[23:17:57] Guest42: has joined #elixir-lang
[23:37:39] craigp_: has joined #elixir-lang
[23:37:59] Sgeo_: has joined #elixir-lang
[23:42:07] MissingNoIOI: has joined #elixir-lang