I watched a video on the debugger, and it seems possible to ignore the 
commands with some native javascript modifying Elm's behavior. Seems messy 
though.

On Tuesday, August 16, 2016 at 11:35:33 PM UTC-5, Zachary Kessin wrote:
>
> By Side effects I meant commands, sorry still have not had any tea yet 
> today 
>
> Zach
> ᐧ
>
> On Wed, Aug 17, 2016 at 7:34 AM, Zachary Kessin <[email protected] 
> <javascript:>> wrote:
>
>> I think the format for exporting types must be someform of json encoding, 
>> for everyone's sanity. And I think when you are in "Re play mode" side 
>> effects should be ignored in favor of the existing events.
>>
>> Zach
>> ᐧ
>>
>> On Tue, Aug 16, 2016 at 7:35 PM, Kasey Speakman <[email protected] 
>> <javascript:>> wrote:
>>
>>> I've started looking at this. The first hurdle is that updates return 
>>> both a model update and a side effect. So you could not replay side effects 
>>> as they may not be deterministic. (Replay produces Cmd which returns a 
>>> different result message from first time. The time traveling debugger gets 
>>> around this by disabling Cmd when replaying.) Not to mention running Cmds 
>>> depends on some outside access (at least mocking it).
>>>
>>> There is a discussion of that here 
>>> <https://groups.google.com/forum/#!topic/elm-discuss/yKRYkoiQmPs> and I 
>>> made a gist of a possible way to implement side effect isolation here 
>>> <https://gist.github.com/kspeakman/109475ecdd3068a022b59f7f73c9485a>. 
>>> Look at the comment first to see what it looks like in use.
>>>
>>> The other hurdle is events are likely to be union types with data. All 
>>> the JSON encoding/decoding I've see in Elm for union types are for the 
>>> simple kind where the case has no other values (like an enum). So having a 
>>> case with values will be a challenge. In JSON.NET, serialized F# union 
>>> type `CaseName ("something", 1, 3.5)` would look like this: `{ "Case": 
>>> "CaseName", "Fields": ["something", 1, 3.5] }`. Note: case values are 
>>> tuples in F#. Javascript allows arrays to contain dissimilar types, so this 
>>> works.
>>>
>>> But, making a custom encoder/decoder for every union case makes you want 
>>> to rethink life choices. Indeed, it might be better to just use Redux-style 
>>> messages where the type is a string so you can send the events out of a 
>>> port for free. It's a shame to lose out on that nice union syntax, but man 
>>> the pain.
>>>
>>> Even then, you will still feel the pain on decoding. Actually, decoding 
>>> anything is painfully manual in Elm. However, there are no surprises that 
>>> way.
>>>
>>> On Thursday, July 28, 2016 at 6:58:58 AM UTC-5, Zachary Kessin wrote:
>>>>
>>>> I know the idea of having an event stream that can be exported and 
>>>> replayed has been kicked around a bit for a while. Has anyone ever done 
>>>> anything with this? 
>>>>
>>>> Ideally I would like to be able to generate a sequence of events with a 
>>>> QuickCheck type tool (either in elm or erlang)
>>>>
>>>> Zach
>>>>
>>>> -- 
>>>> Zach Kessin
>>>> SquareTarget <http://squaretarget.rocks?utm_source=email-sig>
>>>> Twitter: @zkessin <https://twitter.com/zkessin>
>>>> Skype: zachkessin
>>>> ᐧ
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Elm Discuss" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected] <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Zach Kessin
>> SquareTarget <http://squaretarget.rocks?utm_source=email-sig>
>> Twitter: @zkessin <https://twitter.com/zkessin>
>> Skype: zachkessin
>>
>
>
>
> -- 
> Zach Kessin
> SquareTarget <http://squaretarget.rocks?utm_source=email-sig>
> Twitter: @zkessin <https://twitter.com/zkessin>
> Skype: zachkessin
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to