These are chat archives for exceptionless/Discuss

15th
Jan 2016
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:00
wait until you get children. you will be happy about getting rid of things ;-)
Eric J. Smith
@ejsmith
Jan 15 2016 00:00
:-)
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:00
and i don’t mean the children!
dammit.
Blake Niemyjski
@niemyjski
Jan 15 2016 00:01
mint quarters I’ve been collection that my grandpa gave to me that are part of a booklet he got me one xmas (one design per us state) the book with the others was at my parents and I hadn’t had time to go get it..
well she took them and spent them
got pissed, what would you married men would of done.. guess it’s just principal don’t take /get rid of things without asking
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:02
that’s not a very nice thing to do
i’m not married, but if i was, i would’ve spent something that was very special to her, as direct retaliation
Blake Niemyjski
@niemyjski
Jan 15 2016 00:03
haha
jesus
Eric J. Smith
@ejsmith
Jan 15 2016 00:05
welcome to the pre-marriage counseling channel
Blake Niemyjski
@niemyjski
Jan 15 2016 00:05
haha
Blake Niemyjski
@niemyjski
Jan 15 2016 00:42
seems like node is pushed
@frankebersoll would you mind doing a round of testing on the ui client. I ran the index.html file and the node app and both work now for me
the index.html should send a heartbeat event every 30 seconds after the first event is submitted
the js client**
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:44
i can do this tomorrow
Blake Niemyjski
@niemyjski
Jan 15 2016 00:44
ok
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:44
1:44 am here
Blake Niemyjski
@niemyjski
Jan 15 2016 00:44
hehe
I’m going to merge it all in tomorrow I think
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:45
what was the problem now?
Eric J. Smith
@ejsmith
Jan 15 2016 00:45
haha
slacker! :-)
dang
pulling a late nighter over there.
Blake Niemyjski
@niemyjski
Jan 15 2016 00:45
no problems
just was nodes request body was undefined
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:45
i only see changes in whitespace :-)
Blake Niemyjski
@niemyjski
Jan 15 2016 00:45
and so it was trying to be serialized as undefined
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:45
ah! okay
i see it, request.params
see you tomorrow
Blake Niemyjski
@niemyjski
Jan 15 2016 00:46
probly should update stringify to not blow up
ok
good night!
Frank Ebersoll
@frankebersoll
Jan 15 2016 00:47
night
Eric J. Smith
@ejsmith
Jan 15 2016 00:47
good night
Blake Niemyjski
@niemyjski
Jan 15 2016 00:49
exceptionless/Exceptionless.JavaScript#39 exceptionless/Exceptionless.Net#66 @ejsmith can you review both of those and merge them in
I did a quick round of testing and the heart beats are being sent as expected
theit8514
@theit8514
Jan 15 2016 05:36
Unit tests + repositories are the bane of my existence.
RemoveAllAsync().Wait(), Refresh, somehow the repository still has data. sigh
theit8514
@theit8514
Jan 15 2016 06:02
In this case, I guess the simplest answer is probably the best... use a different email on each unit test.
Modesto San Juan
@modesto
Jan 15 2016 10:00
@theit8514 Unit tests + repositories == Integration tests ;)
Not a very good speaker, but I am trying to get the word out! :-)
Blake Niemyjski
@niemyjski
Jan 15 2016 15:44
@theit8514 I wouldn’t do a wait ever, and you’ll need to do a elasticClient.refreshasync
Because the index hasn’t been flushed
it’s kind of a pita.
Blake Niemyjski
@niemyjski
Jan 15 2016 17:44
@ejsmith good job :D
Blake Niemyjski
@niemyjski
Jan 15 2016 18:13
@theit8514 I added some comments on it
should simplify it a bit
Sander Rijken
@srijken
Jan 15 2016 18:27
so.. what’s the consensus on the deduper?
Blake Niemyjski
@niemyjski
Jan 15 2016 18:29
should dedup the same errors based on stack trace and exception type
probably message as well?
We don’t want to check everything because we want gethashcode to be fast as heck
Damiaan
@dampee
Jan 15 2016 18:31
That's an interesting question.
Sander Rijken
@srijken
Jan 15 2016 18:34
and we’ll use gethashcode? because when you do that, errors that are similar are suddenly exactly the same (equals returns true)
I also saw implementations where they cache / precompute the hashcode.. lately I had a perf problem where string.getHashcode was the bottleneck :P
Blake Niemyjski
@niemyjski
Jan 15 2016 18:39
Yeah if they have the same type and stack trace then they probably are the same :)
Well we could be smart about it and change it up to do the hash of the actual exception.. That probable would be super fast.. Want to try that
They probably already implemented get hardcore
Sander Rijken
@srijken
Jan 15 2016 18:41
they didn’t implement it
I’ll see what I can do
Blake Niemyjski
@niemyjski
Jan 15 2016 18:45
Ok
Probably need to add some try catches around it and null checks. Type+message+stack trace
Eric J. Smith
@ejsmith
Jan 15 2016 19:06
I think it needs to have everything including message because we have seen a lot of cases where errors differ only in message and they are different errors. This client side deduping should be really dumb.
we aren’t doing client side stacking because the logic for stacking changes and we don’t want people to have to update their clients to get improvements… the same is true for this… we just want some dumb dupe checking to reduce the volume of events coming through while providing as much value to the user as possible.
Sander Rijken
@srijken
Jan 15 2016 19:15
check
Eric J. Smith
@ejsmith
Jan 15 2016 19:18
check check 1… 2...
Sander Rijken
@srijken
Jan 15 2016 19:20
:)
Sander Rijken
@srijken
Jan 15 2016 19:27
@ejsmith you said something about resharper and GetHashcode()?
nvm, found it
it’s hard to do on the stack, as that’s a collection, and you don’t want to enumerate the whole collection there
Sander Rijken
@srijken
Jan 15 2016 19:37
GetHashCode on non-readonly properties is also not a good idea (because you can change them; changing the hashcode, breaking all dictionaries and other hashcode based things)
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:37
in js, what we do is: Utils.getHashCode(JSON.stringify(err.stack_trace))
Sander Rijken
@srijken
Jan 15 2016 19:37
yeah I was looking at that
it seems like a pretty expensive thing to do though
and maybe needs more than just the stack
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:39
yes. i would add that to an object and stringify that. but i don’t like the concept, either. on the other hand, what are the alternatives?
Sander Rijken
@srijken
Jan 15 2016 19:39
yeah
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:46
well. over here, a stack comprises IStackFrames, which consist of one string and two numbers
probably, it will be faster to just iterate over the array and use those values to evaluate a hash code, just multipliying those numbers up?
Sander Rijken
@srijken
Jan 15 2016 19:49
yeah
the other thing I was trying to say that it’s not a good idea to implement GetHashCode itself, because that has lots of other effects
just do the calculation inside the dupe checker, or maybe some helper
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:50
well, it is used wherever equality is used
Sander Rijken
@srijken
Jan 15 2016 19:50
yes, but when one plugin extracts some data, and stuffs it in the object, eg sets the type to ‘error’ because it’s an exception, hashcode changes
that’s bad
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:50
in .net, you could implement a special EqualityComparer<T> which is only used there.
Sander Rijken
@srijken
Jan 15 2016 19:50
that’s better indeed
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:51
that does all the hashing and comparison stuff
Sander Rijken
@srijken
Jan 15 2016 19:51
not really
it implements comparison
not hashing (iirc)
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:51
both go hand in hand
Eric J. Smith
@ejsmith
Jan 15 2016 19:52
agreed on not overriding gethashcode
Sander Rijken
@srijken
Jan 15 2016 19:53
well the problem is, if you have HashSet<InnerError>, and set the type, or whatever other property, stuff breaks (because the hash changes)
Frank Ebersoll
@frankebersoll
Jan 15 2016 19:53
okay, we can just take the code and put it inside an IEqualityComparer and use that in a HashSet or so
Sander Rijken
@srijken
Jan 15 2016 19:54
something like that
Eric J. Smith
@ejsmith
Jan 15 2016 19:55
so on a side note… I was just thinking that we need to have some Exceptionless stickers.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:30
i am okay with that
Sander Rijken
@srijken
Jan 15 2016 20:32
:)
Eric J. Smith
@ejsmith
Jan 15 2016 20:42
@frankebersoll just thought of why we can’t do ref:// in the value of the extended property.
because that value is supposed to be the reference id pointing to the parent event and we need to index the value so we can search for child events using data.session:{refid}
Blake Niemyjski
@niemyjski
Jan 15 2016 20:43
seriously why event look at doing a hashcode on our model...
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:44
… and the indexed value should not have that prefix?
Eric J. Smith
@ejsmith
Jan 15 2016 20:44
yeah
Blake Niemyjski
@niemyjski
Jan 15 2016 20:44
just do context.GetException() and if it’s returned then you have the real .net exception and do exception.StackTrace?.GetHashCode() and be done
Eric J. Smith
@ejsmith
Jan 15 2016 20:44
gotta be in the property name..
Blake Niemyjski
@niemyjski
Jan 15 2016 20:44
then it works in pcl and .net full
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:45
i also thought about that, and I would like it, as long as I won’t be confronted by it in the ui
Eric J. Smith
@ejsmith
Jan 15 2016 20:45
yeah, it will be stripped out.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:45
but then, I am: when i use it to filter by it, i would have to type it in. right?
Eric J. Smith
@ejsmith
Jan 15 2016 20:46
we just need to decide on the naming format for the properties.
not sure what you mean.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:46
well, wouldn’t i need to add it to the property name in the search box?
Eric J. Smith
@ejsmith
Jan 15 2016 20:46
so the way it works now...
we look for simple extended properties on the events… like strings, numbers, booleans...
if it’s a simple property then we index the value.
then you can access it in the UI using a filter like “data.{property name}:{value}"
so in the session case, we would add a string extended property to the event called session
and be able to search for session events by doing data.session:{id}
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:48
wouldn’t we need to mark it as reference type by naming it differently?
Eric J. Smith
@ejsmith
Jan 15 2016 20:49
yeah, you are right.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:49
or we update our query parser to translate session:id into data.session:id
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:49
like, „session.ref“?
Eric J. Smith
@ejsmith
Jan 15 2016 20:49
we need to know that it is a reference
so we can link it.
yeah, still some debate on the naming convention for thos.
those
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:49
so, you would need to search for data.’session.ref’:2345
Eric J. Smith
@ejsmith
Jan 15 2016 20:49
we would see that in the indexer and strip that out.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:50
ah
ok
Eric J. Smith
@ejsmith
Jan 15 2016 20:50
I really don’t like the suffix thing looking like a file extension… :-(
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:50
i don’t either
Eric J. Smith
@ejsmith
Jan 15 2016 20:50
seems like we have 2 options...
Blake Niemyjski
@niemyjski
Jan 15 2016 20:50
so
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:50
just an example.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:50
here is a consern of mine
Eric J. Smith
@ejsmith
Jan 15 2016 20:50
prefix… ref:session
Blake Niemyjski
@niemyjski
Jan 15 2016 20:50
if you have unlimited unkown references like features.ref or abc.ref
Eric J. Smith
@ejsmith
Jan 15 2016 20:51
suffix… session.ref
this is not open ended
Blake Niemyjski
@niemyjski
Jan 15 2016 20:51
how are we going to know what to link it to or how to build the ui link?
Eric J. Smith
@ejsmith
Jan 15 2016 20:51
it can’t be open ended.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:51
so we would support features and child features
Eric J. Smith
@ejsmith
Jan 15 2016 20:51
we need to know what these things are so we know how to render them.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:51
and events that happen in a page view and all things in a session?
or just sessions for now
Eric J. Smith
@ejsmith
Jan 15 2016 20:52
so we would look for “ref:” at the start of the property name and know that we need to render that as a reference link.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:52
but if it will be stripped out…?
Blake Niemyjski
@niemyjski
Jan 15 2016 20:52
is ref: event a valid identifier
Eric J. Smith
@ejsmith
Jan 15 2016 20:52
yes, we would strip it out for display
what??
ohh
for a property name you mean?
Blake Niemyjski
@niemyjski
Jan 15 2016 20:53
hmm, probably have to update all our clients because they all verify that the property name you are setting is valid (I think anyways)
yeah
Eric J. Smith
@ejsmith
Jan 15 2016 20:53
well, we would figure out what is valid
and use a valid name
ref. or ref:
Blake Niemyjski
@niemyjski
Jan 15 2016 20:54
I vote for ref_
:D
lol
I’m really worried about our code moving to elastic .net 2.0
everything we do has .’s in it and they through exceptions / are not allowing it anymore
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:54
we should even verify that they don’t do the following: { ref_blah: „123“, md_blah: „test" }
Blake Niemyjski
@niemyjski
Jan 15 2016 20:54
I guess we’ll see what’s happening next week
Eric J. Smith
@ejsmith
Jan 15 2016 20:54
only thing we need to be worried about is that users could want to use these names as legit property names.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:54
that could be done by a plugin
Eric J. Smith
@ejsmith
Jan 15 2016 20:54
we don’t want to conflict.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:55
we’ll we were prefixing all our system ones with @
Eric J. Smith
@ejsmith
Jan 15 2016 20:55
so maybe @ref:
Blake Niemyjski
@niemyjski
Jan 15 2016 20:55
but we seem to be getting rid of those
yeah
I like that
Eric J. Smith
@ejsmith
Jan 15 2016 20:56
ok, so we agree that the property name would be “@ref:session"
son of a
@ref: session"
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:56
i like that it is worried about it.
Blake Niemyjski
@niemyjski
Jan 15 2016 20:56
LOL
Eric J. Smith
@ejsmith
Jan 15 2016 20:56
haha
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:57
as we support UTF8, we could always use emojis as prefixes.
that might work even better
Blake Niemyjski
@niemyjski
Jan 15 2016 20:57
yeah
Eric J. Smith
@ejsmith
Jan 15 2016 20:57
so I think we have decided on a plan… now the real question is… how much work is it and do we want to tackle it right now before we go releasing the session thing?
Blake Niemyjski
@niemyjski
Jan 15 2016 20:57
could use a middle finger emoji
Eric J. Smith
@ejsmith
Jan 15 2016 20:57
that is a really good idea. ;-)
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:58
i would use the pointing one for references
Eric J. Smith
@ejsmith
Jan 15 2016 20:58
can’t tell if your serious. :-)
we already have an existing convention where we do system extended properties that start with an @
so I say we follow that.
and we can just start with @ref: support and limit the scope of the feature.
Frank Ebersoll
@frankebersoll
Jan 15 2016 20:59
can’t we take the session thing and make it work exactly like we want to make it for references?
Eric J. Smith
@ejsmith
Jan 15 2016 20:59
yeah, converting it over is not much work.
the biggest think that is kind of unknown is how we know on the parent event to show tabs for different relations.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:00
then we can tweak and refactor the backend to generalize it
then add the needed apis on the frontend
Eric J. Smith
@ejsmith
Jan 15 2016 21:01
so we would absolutely use this for sessions and even page views immediately.
so we have 2 use cases for sure.
we just don’t know if users would actually use it.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:02
that comes with the right APIs in the clients
Eric J. Smith
@ejsmith
Jan 15 2016 21:02
from a user perspective… they would literally just have to call event.SetEventReference(“my prop”, someRefId);
everything else would just work
in the pipeline we would see that the prop is a ref and then lookup the event that has that reference id and then add the referenced event type as a relationship
does that make sense to you guys?
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:05
it… doesn’t differ too much from what we already had some days ago.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:05
yeah, but when I see that SetEventReference with a property it’s confusing as hell
I’m speaking directly from an end user
We’d have to have a huge section in the docs just for that
Eric J. Smith
@ejsmith
Jan 15 2016 21:06
please explain to me how that is so confusing? @frankebersoll do you think it’s confusing?
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:07
i find it intuitive, but maybe i’m biased. because i actually wanted this to exist.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:07
Like just seeing event.SetEventReference(“random property”, somereferenceid), I’d wonder why or when I’d ever use that and I’d jsut overlook it.
Eric J. Smith
@ejsmith
Jan 15 2016 21:07
we are talking to devs… they understand foreign keys
Blake Niemyjski
@niemyjski
Jan 15 2016 21:07
yeah
So if we expose this in the ui and only support maybe two known reference types
Eric J. Smith
@ejsmith
Jan 15 2016 21:08
what is the extension method for setting the reference id?
Blake Niemyjski
@niemyjski
Jan 15 2016 21:08
what value is it to actually expose that helper method on the clients?
Eric J. Smith
@ejsmith
Jan 15 2016 21:08
SetReferenceId ?
Blake Niemyjski
@niemyjski
Jan 15 2016 21:08
yeah
Eric J. Smith
@ejsmith
Jan 15 2016 21:08
so SetReferenceId and SetEventReference
we would put XML docs on those.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:09
@niemyjski what do you mean by „support maybe two known reference types"
Blake Niemyjski
@niemyjski
Jan 15 2016 21:09
we’ll were not going to render out anything in the ui that starts with @
so by you setting that the only thing your going to gain is by us knowing the type or doing your search for it
Eric J. Smith
@ejsmith
Jan 15 2016 21:10
we will render it… but just as a link.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:10
… and have a link to it!
and, on the other end (-to-1-end) we could have a list of all referencing items
Blake Niemyjski
@niemyjski
Jan 15 2016 21:10
so your saying for each one we come across for that.. we are going to send you to a by ref lookup page and your going to look it up that way
Eric J. Smith
@ejsmith
Jan 15 2016 21:10
yep
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:10
at least that’s what i understood
Blake Niemyjski
@niemyjski
Jan 15 2016 21:10
ok
Eric J. Smith
@ejsmith
Jan 15 2016 21:11
just like the events tab on the session event now.
yes blake
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:11
you get maximum navigation between events.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:11
ok
Eric J. Smith
@ejsmith
Jan 15 2016 21:11
each one of those would get rendered as a link to the by-ref page.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:11
and we could even provide things like trees or drill down stuff in the UI
Blake Niemyjski
@niemyjski
Jan 15 2016 21:11
/ you guys love creating more work for me eh
Who wants to write this up into that issue
Eric J. Smith
@ejsmith
Jan 15 2016 21:11
the point is that we aren’t really that far off.
we have a lot of the pieces in place already.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:12
awe shit guys
just thought of something
were going to have to do a transform for searches
Eric J. Smith
@ejsmith
Jan 15 2016 21:13
already happens
Blake Niemyjski
@niemyjski
Jan 15 2016 21:13
references: -> data[‘@ref']
because you can’t do
Eric J. Smith
@ejsmith
Jan 15 2016 21:13
that is how data.blah:
Blake Niemyjski
@niemyjski
Jan 15 2016 21:13
data.@ref:sessions:session_id
Eric J. Smith
@ejsmith
Jan 15 2016 21:13
no… we will remove @ref: from the name when we index.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:13
illegal syntax
ok
Eric J. Smith
@ejsmith
Jan 15 2016 21:14
said that already :-)
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:14
@niemyjski i came up with that 20 mins ago
Eric J. Smith
@ejsmith
Jan 15 2016 21:14
lol
Blake Niemyjski
@niemyjski
Jan 15 2016 21:14
:\
lol
guess I was paying attention to support
so yeah this will work out good
do we want to commit to it
Eric J. Smith
@ejsmith
Jan 15 2016 21:16
it seems like it would be super useful and we would implement it one time and allow any sort of relation including user relations.
the alternative is to make a 1st class relation for everything that we know about.
which sucks for users and sucks for architecture.
only thing that makes me think twice is that I really wanted to get started on custom charts.
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:17
ehm, my colleagues came up with another thing...
Eric J. Smith
@ejsmith
Jan 15 2016 21:17
and I feel like custom charts are more of a selling point than event relations.
alright, collective brain power!
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:18
we have this dropdown on the search field, which shows last searches
we would like to save and share them project-wide
Eric J. Smith
@ejsmith
Jan 15 2016 21:18
yeah, that is a whole other topic. :-)
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:18
okay!
Blake Niemyjski
@niemyjski
Jan 15 2016 21:19
yeah we want that too but it’s not happening until we rewrite that control or get an awesome pull request for it :)
Eric J. Smith
@ejsmith
Jan 15 2016 21:19
I want to move the whole system to be very much filter focused with saved filters
Blake Niemyjski
@niemyjski
Jan 15 2016 21:19
yeah
Eric J. Smith
@ejsmith
Jan 15 2016 21:19
and with intellisense on the filter box
Blake Niemyjski
@niemyjski
Jan 15 2016 21:19
we already talked about it and we have a github issue for it
Eric J. Smith
@ejsmith
Jan 15 2016 21:19
@frankebersoll are you saying that it relates to this though?
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:19
no, it’s completely unrelated.
Eric J. Smith
@ejsmith
Jan 15 2016 21:19
haha
ok
yeah
million things we want! :-)
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:20
okay! great. so, if most business value comes from custom charts, charts is next
Blake Niemyjski
@niemyjski
Jan 15 2016 21:20
exceptionless/Exceptionless.UI#11 want to add your feedback there
Eric J. Smith
@ejsmith
Jan 15 2016 21:20
need more funding!
Blake Niemyjski
@niemyjski
Jan 15 2016 21:20
that would be sweet
would love to hire another remote dev some day ;)
Eric J. Smith
@ejsmith
Jan 15 2016 21:21
yeah, charts I think would be the biggest business value, but the problem is that we are going to lock ourselves into using sessionid for a single relation for now.
and we want to release the sessions feature soon since it’s mostly done.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:21
ok
so I’ll work on it
starting now..
@frankebersoll want to work on the client side of it?
Eric J. Smith
@ejsmith
Jan 15 2016 21:22
so you are saying we go ahead and refactor the session stuff?
Blake Niemyjski
@niemyjski
Jan 15 2016 21:22
yeah I’ll do it in a branch
Eric J. Smith
@ejsmith
Jan 15 2016 21:22
I think I agree with that… but I want to do charts next
Blake Niemyjski
@niemyjski
Jan 15 2016 21:22
just sucks
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:22
wait.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:22
cause we could deploy now with it
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:22
i asked if we could do the following
1.: change the session stuff in the client so that it uses the @ref prefix
2.: change it in the server, finish it up, publish the session feature
Blake Niemyjski
@niemyjski
Jan 15 2016 21:23
@frankebersoll you need to update.. there is no longer any session stuff in the client
there’s submit session start and submit session end
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:24
3.: custom charts
Blake Niemyjski
@niemyjski
Jan 15 2016 21:24
and neither of them set any properties
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:24
4.: add reference stuff on the server, then in the UI, then add the APIs in the clients
Eric J. Smith
@ejsmith
Jan 15 2016 21:25
yeah, we are basically talking the same thing @frankebersoll
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:25
ok!
Blake Niemyjski
@niemyjski
Jan 15 2016 21:25
1) would just be adding the event reference extensions, 2) yeah we’d need to update that 3) that’s completly a seperate thing 4) we’d need that to go live with the session changes
yeah
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:26
1) i wouldn’t add extensions, i would do that last as we don’t support it server side yet
Eric J. Smith
@ejsmith
Jan 15 2016 21:26
yeah, agree with that.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:26
we’ll we aren’t pushing the clients until it’s supported server side and we need a way of testing it
Eric J. Smith
@ejsmith
Jan 15 2016 21:26
those are the last things we can add.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:26
yeah
maybe even skip the 3.2 release
ok I’ll start on the server side of this and work my way to the ui
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:28
wait… wait.
i don’t think we’re on the same track :-)
Eric J. Smith
@ejsmith
Jan 15 2016 21:28
haha
Blake Niemyjski
@niemyjski
Jan 15 2016 21:28
we just spent the past week talking about it
lol
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:29
i think the idea was to leave the „reference“ stuff for later, after the graph thing
because of business value
Blake Niemyjski
@niemyjski
Jan 15 2016 21:29
well it’s all generic and the session stuff would depend on it
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:29
but „prepare“ the session property to just have the right name already
Blake Niemyjski
@niemyjski
Jan 15 2016 21:29
event.SetReferenceEvent(“session”, id);
would do @ref:session : id
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:30
lol, there it is again
Sander Rijken
@srijken
Jan 15 2016 21:30
put backticks around it :D
Blake Niemyjski
@niemyjski
Jan 15 2016 21:30
yeah
Eric J. Smith
@ejsmith
Jan 15 2016 21:31
@frankebersoll don’t want to release the session feature with the data in the wrong place and then we implement the ref thing later and have to do a data migration on millions of events.
we will look for shortcuts on this feature… things we can finish later… but I want the data in the right place.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:31
yup
kinda funny how our indexes evolve
everymonth we add a bit more to the index
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:32
right. it's this one property name. then we would have some data that has the right structure and could work on the server to generalize it without changing sessions on the client
Blake Niemyjski
@niemyjski
Jan 15 2016 21:32
and so after 6 months we’ll all have the same index
:)
Eric J. Smith
@ejsmith
Jan 15 2016 21:32
yeah
Blake Niemyjski
@niemyjski
Jan 15 2016 21:33
So I’m going to take a stab at this in the sessions branch
and then I’ll come back and ask you guys to look at it after I have unit tests and the like updated
shouldn’t take me too much
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:33
i think the only thing to change would really be the property name
Eric J. Smith
@ejsmith
Jan 15 2016 21:34
and the query to get the events and the UI to show the link.
we can forget about the automatic creating of relationships.
that can be done later.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:36
holy shit guys
wer are off to a great start!!
Screen Shot 2016-01-15 at 3.36.13 PM.png
Eric J. Smith
@ejsmith
Jan 15 2016 21:37
lol
Frank Ebersoll
@frankebersoll
Jan 15 2016 21:37
the emoji saw it coming.
Blake Niemyjski
@niemyjski
Jan 15 2016 21:37
lol
public static void SetEventReference(this PersistentEvent ev, string name, string id) {
if (ev == null || String.IsNullOrEmpty(name) || String.IsNullOrEmpty(id))
return;
        ev.Data[$"@ref:{name}"] = id;
    }

    public static void SetSessionId(this PersistentEvent ev, string sessionId) {
        if (ev == null || String.IsNullOrEmpty(sessionId))
            return;

        if (ev.IsSessionStart())
            ev.ReferenceId = sessionId;
        else
            ev.SetEventReference("session", sessionId);
    }
:)
nice little helper
sure hope I don’t break anything when I remove this session_id field
guess I’ll have to test that out
Frank Ebersoll
@frankebersoll
Jan 15 2016 23:49
okay, our sourcemaps will never work
the problem is that tsproject won’t generate any source mappings during its bundling phase
it only maps from the bundled .js to the bundled .ts file
it doesn’t map back to the original .ts files
that’s why we can’t debug with breakpoints in vscode and probably not in webstorm either
Blake Niemyjski
@niemyjski
Jan 15 2016 23:53
We will be getting rid of it soon enough
Bundling support will be built into the next version of ts
Frank Ebersoll
@frankebersoll
Jan 15 2016 23:54
yes, i already saw that comment in an issue in tsproject
Eric J. Smith
@ejsmith
Jan 15 2016 23:54
so tsproject doesn’t support sourcemaps??
that seems rediculous
Frank Ebersoll
@frankebersoll
Jan 15 2016 23:54
i’m super excited about this, did you find any more info about it?
it supports them, but not mapping back all the way.