2015-07-03 07:52:30 +0000ircbrowse(~chrisdone@2a01:4f8:150:5307::2)
2015-07-03 07:52:39 +0000joco_from_ubuntu(~joco@dsl-hkibrasgw4-58c03a-80.dhcp.inet.fi)
2015-07-03 07:55:14 +0000 <zinfandel> ircbrowse: Woow
2015-07-03 07:55:18 +0000 <zinfandel> It's finally here
2015-07-03 07:56:07 +0000 <zinfandel> And it's there http://ircbrowse.net/browse/reflex-frp
2015-07-03 07:59:12 +0000 <Haskellfant> nice :)
2015-07-03 08:18:44 +0000 <joco_from_ubuntu> wow
2015-07-03 08:19:01 +0000 <joco_from_ubuntu> my email to the author perhaps helped ?
2015-07-03 08:19:11 +0000 <saulzar_> Oh, cool - thanks joco - and ircbrowse author :)
2015-07-03 08:19:11 +0000 <joco_from_ubuntu> i write a thank you email
2015-07-03 08:20:47 +0000 <joco_from_ubuntu> Now I don't have to be logged in from 4 different locations.
2015-07-03 08:21:04 +0000 <saulzar_> Haha
2015-07-03 08:22:09 +0000 <saulzar_> I used to leave my account at work logged in too for that purpose
2015-07-03 09:46:37 +0000bennofs(~benno@ipb2186cc7.dynamic.kabel-deutschland.de)
2015-07-03 09:55:33 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk)
2015-07-03 10:34:01 +0000jimstutt(~user@host-92-19-55-203.as13285.net)
2015-07-03 11:04:33 +0000chaptastic(~textual@c-24-125-71-94.hsd1.ga.comcast.net)
2015-07-03 11:17:14 +0000chaptastic(~textual@c-24-125-71-94.hsd1.ga.comcast.net) ()
2015-07-03 11:26:23 +0000chaptastic(~textual@c-24-125-71-94.hsd1.ga.comcast.net)
2015-07-03 11:47:01 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk) (Quit: My Mac has gone to sleep. ZZZzzz…)
2015-07-03 11:53:10 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk)
2015-07-03 12:02:12 +0000chaptastic(~textual@c-24-125-71-94.hsd1.ga.comcast.net) ()
2015-07-03 12:03:37 +0000babu`(~user@182.73.65.150) (Ping timeout: 252 seconds)
2015-07-03 12:43:52 +0000 <mightybyte> ryantrinkle: Maybe you should update the topic to indicate that this channel is logged.
2015-07-03 12:44:59 +0000 <bennofs> :o where are the logs?
2015-07-03 12:45:16 +0000 <mightybyte> bennofs: http://ircbrowse.net/browse/reflex-frp
2015-07-03 12:45:25 +0000 <bennofs> ah, cool
2015-07-03 12:54:30 +0000joco42_(uid95472@gateway/web/irccloud.com/x-bwvtkftfqlenwpgj) (Quit: Connection closed for inactivity)
2015-07-03 12:56:59 +0000ChanServ+o ryantrinkle
2015-07-03 12:57:09 +0000 https://hackage.haskell.org/package/reflex | Logs: http://ircbrowse.net/day/reflex-frp/today?mode=recent
2015-07-03 12:57:43 +0000ChanServ-o ryantrinkle
2015-07-03 12:58:34 +0000 <ryantrinkle> mightybyte: good idea ;)
2015-07-03 12:58:36 +0000 <ryantrinkle> :)
2015-07-03 13:03:51 +0000chaptastic(~textual@c-24-125-71-94.hsd1.ga.comcast.net)
2015-07-03 13:09:50 +0000 <saulzar_> Should help a lot, maybe you can get away with less nix tutorials in future ;)
2015-07-03 13:10:57 +0000 <ryantrinkle> saulzar_: haha yeah
2015-07-03 13:11:16 +0000 <ryantrinkle> well, maybe the toolchain will improve to the point where I don't have to recommend nix to newbies :)
2015-07-03 13:11:39 +0000 <saulzar_> Hehe
2015-07-03 13:13:57 +0000 <saulzar_> Btw, I figured out a good way (I think) to do typesafe wc3 Html. Also thought a bit about how you'd support a really good bootstrap lib (as in, how to remove all the extra wrapping and gunk needed for the styling)
2015-07-03 13:17:59 +0000 <ryantrinkle> nice
2015-07-03 13:18:08 +0000 <saulzar_> Getting ahead of myself, I know - but good to think about these things
2015-07-03 13:18:24 +0000 <ryantrinkle> yeah, definitely :)
2015-07-03 13:19:28 +0000 <martingale> From what I'm hearing, reflex does not support a "global" state approach out of the box. This seems in contrast to ryantrinkle's " allow app authors to choose whatever approach to state fits their problem best"
2015-07-03 13:19:36 +0000 <martingale> and forces them to either implement diffing themselves or adopt a more local approach
2015-07-03 13:19:40 +0000 <saulzar_> I figure you can make all elements go through a Config, then be able to transform children to add attributes/wrapping elements etc. Not for the user to use, but for a library writer
2015-07-03 13:19:46 +0000 <ryantrinkle> martingale: i'm not sure what you mean
2015-07-03 13:20:00 +0000 <ryantrinkle> what part doesn't it support?
2015-07-03 13:21:19 +0000 <mightybyte> martingale: My comment wasn't quite that definitive. I was mainly observing that keeping everything in a single Dynamic seems like it would cause a lot of stuff to fire.
2015-07-03 13:22:22 +0000joco42_(uid95472@gateway/web/irccloud.com/x-ggjrpifbikgpheks)
2015-07-03 13:22:55 +0000 <saulzar_> martingale, I think it does - just it might not be the simplest way for all cases. The root Dynamic might fire over and over, but as you decompose it you can filter parts of it out by nubDyn for example, so you're doing the diff yourself essentially
2015-07-03 13:23:39 +0000 <ryantrinkle> well, it's not just that; even if you don't nubDyn, the individual components are going to be pretty efficient about what to update and what not to update
2015-07-03 13:24:37 +0000 <ryantrinkle> it would be great to have some actual performance comparisons between Elm and Reflex
2015-07-03 13:24:40 +0000 <saulzar_> martingale, Also it's sometimes really useful not to have everything in a global state - for example it can be a pain to deal with all the character updates from an input box as you would in Elm
2015-07-03 13:29:36 +0000 <saulzar_> There's a benchmark on the TodoMVC it seems http://elm-lang.org/blog/blazing-fast-html
2015-07-03 13:29:45 +0000 <ryantrinkle> martingale: is there any particular functionality you're looking for? my intent is to have "global state" and "local state" both be easy, and treated exactly the same way - global state is just state that you establish at the top level of your application
2015-07-03 13:30:12 +0000 <ryantrinkle> so if there are things missing, i'll try to address them
2015-07-03 13:32:25 +0000 <martingale> ryantrinkle No there isn't anything missing, I was referring to mightybyte's comment about not being sure how to do global state in reflex
2015-07-03 13:33:10 +0000 <martingale> saulzar_ that's what I was trying to show with the gist i posted
2015-07-03 13:33:41 +0000 <martingale> that is - it's useful to have some local state
2015-07-03 13:33:41 +0000 <saulzar_> martingale, Ah - I wasn't around
2015-07-03 13:33:56 +0000 <ryantrinkle> martingale: yeah, makes sense
2015-07-03 13:34:09 +0000 <joco42_> it would be perhaps good to define what is global state and local state
2015-07-03 13:34:10 +0000 <martingale> saulzar_ https://gist.github.com/jeffreyrosenbluth/937d40c7d675d10bb85c
2015-07-03 13:34:25 +0000 <ryantrinkle> joco42_: well, i think there's actually some difficulty there
2015-07-03 13:34:34 +0000 <ryantrinkle> nothing in the universe is actually "global"
2015-07-03 13:34:39 +0000 <ryantrinkle> it always sits inside of *some* scope
2015-07-03 13:34:39 +0000 <joco42_> :)
2015-07-03 13:34:49 +0000 <ryantrinkle> with reflex, all scopes are treated equally
2015-07-03 13:34:51 +0000 <martingale> yes, that's why i keep putting "global" and "local" in quotes
2015-07-03 13:34:53 +0000 <joco42_> that is an awesome sentence...
2015-07-03 13:35:22 +0000 <joco42_> nothing in the universe is global, except for this sentence
2015-07-03 13:35:40 +0000 <ryantrinkle> hahaha
2015-07-03 13:35:44 +0000 <joco42_> which is true everywhere
2015-07-03 13:36:00 +0000 <saulzar_> https://github.com/evancz/todomvc-perf-comparison/blob/master/resources/tests.js -- doesn't look too complicated to add reflex
2015-07-03 13:36:03 +0000 <ryantrinkle> only if you assume the laws of physics are the same everywhere...
2015-07-03 13:36:19 +0000 <saulzar_> Not quite sure TodoMVC i a great benchmark though
2015-07-03 13:37:24 +0000 <martingale> agreed, but I would still find it interesting
2015-07-03 13:37:40 +0000 <saulzar_> Yeah, agree - would show you if you have some really pathological bad case
2015-07-03 13:37:51 +0000 <ryantrinkle> yeah
2015-07-03 13:39:42 +0000 <saulzar_> and it's something of a defacto standard comparison
2015-07-03 13:47:33 +0000 <saulzar_> Some kind of SecurityError trying to run it locally, wonder what that's about
2015-07-03 13:54:45 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk) (Quit: My Mac has gone to sleep. ZZZzzz…)
2015-07-03 14:08:04 +0000bennofs(~benno@ipb2186cc7.dynamic.kabel-deutschland.de) (Ping timeout: 250 seconds)
2015-07-03 14:14:55 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk)
2015-07-03 14:16:27 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk) (Read error: Connection reset by peer)
2015-07-03 14:16:58 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk)
2015-07-03 14:18:49 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk) (Client Quit)
2015-07-03 14:26:29 +0000 <joco42_> so perhaps the distinction global vs local is not the right one
2015-07-03 14:29:19 +0000latk(~textual@global-1-27.nat.csx.cam.ac.uk)
2015-07-03 14:29:23 +0000 <joco42_> a good question to ask is: what purpose does a given state have ?
2015-07-03 14:29:45 +0000 <saulzar_> I don't think it's so bad, just it's a continuum
2015-07-03 14:30:10 +0000 <joco42_> hmm... but how is this continium defined?
2015-07-03 14:30:56 +0000 <joco42_> saulzar: could you give a simple, one line example?
2015-07-03 14:31:02 +0000 <saulzar_> I think you can refer to the distance the data travels up and down your application tree..
2015-07-03 14:31:38 +0000 <joco42_> ok, this sounds interesting, what is the appl. tree?
2015-07-03 14:31:54 +0000 <martingale> saulzar_ I think thats a very useful characterization
2015-07-03 14:32:58 +0000 <saulzar_> Well actually it's not really a tree - but a graph that you construct when you make your application which connects the reactive values (Events/Dynamics etc.)
2015-07-03 14:33:08 +0000 <joco42_> ok
2015-07-03 14:33:15 +0000 <joco42_> yes
2015-07-03 14:33:31 +0000 <saulzar_> Well, it's a tree in the UI and a graph in the reactive values