These are chat archives for exceptionless/Discuss

27th
Jan 2016
Alexandre Jobin
@alexandrejobin
Jan 27 2016 02:39
hi there!
Blake Niemyjski
@niemyjski
Jan 27 2016 07:00
Hey
Jonas Dralle
@JonasDralle
Jan 27 2016 13:30
is someone online?
I just notices that you guys already have an global ExceptionHandler that will ask the user for e-mail adress and stuff
this is really good - now i dont have to write one
Eric J. Smith
@ejsmith
Jan 27 2016 13:31
Yep, I am here.
Jonas Dralle
@JonasDralle
Jan 27 2016 13:31
But I want to append something to your global exception handler. I want to try saving the currently open document
Hello ejsmith
Eric J. Smith
@ejsmith
Jan 27 2016 13:32
You can add any custom data to the event easily.
Is that what you mean?
Jonas Dralle
@JonasDralle
Jan 27 2016 13:32
how? AppDomain.CurrentDomain.UnhandledException never gets called as far as I can see
Your Exceptionhandler is great but I want mien to fire before/after/while/idontcare it because I want to save all open documents and then try to safe quit
Eric J. Smith
@ejsmith
Jan 27 2016 13:33
Are you trying to add data to an exception that is already being caught?
Blake Niemyjski
@niemyjski
Jan 27 2016 13:33
You could just wire up to submitting handler and save it then
You could check to see if it's an unhandeled exception
Eric J. Smith
@ejsmith
Jan 27 2016 13:34
I think he is wanting to just run code before the app shuts down.
I think you could use the OnSubmitting event.
Jonas Dralle
@JonasDralle
Jan 27 2016 13:35
I think ExceptionlessClient.Default.SubmittedEvent is what I want
Then I figure if args.IsUnhandledError is true and try to save the emergency file
Thanks guys! :)
Eric J. Smith
@ejsmith
Jan 27 2016 13:35
Cool. Give it a try.
Blake Niemyjski
@niemyjski
Jan 27 2016 13:36
:)
Jonas Dralle
@JonasDralle
Jan 27 2016 13:36
sorry if I interrupted you guys
Blake Niemyjski
@niemyjski
Jan 27 2016 13:36
No that's what this Chanel is here for
Jonas Dralle
@JonasDralle
Jan 27 2016 13:36
I dont think i could work like that
Blake Niemyjski
@niemyjski
Jan 27 2016 13:36
I just woke up, couldn't fall asleep for 3 hours last night :/
Jonas Dralle
@JonasDralle
Jan 27 2016 13:37
The support is ingenious but I think i would be heavily distracted
Eric J. Smith
@ejsmith
Jan 27 2016 13:37
No problem
Blake Niemyjski
@niemyjski
Jan 27 2016 13:37
It's my job to help everyone :)
Stick around and feel free to chim in with feedback or input
Jonas Dralle
@JonasDralle
Jan 27 2016 13:38
k
Blake Niemyjski
@niemyjski
Jan 27 2016 13:38
Trying to build an awesome community
Jonas Dralle
@JonasDralle
Jan 27 2016 13:39
I love your product
I'm currently building a small Diary application
It was the first app where I didn't failed using MVVM
Also the first app I didnt failed to use Exceptionless
xD I think i always downloaded the wrong pakcage
*package
ok have a nice day :+1:
Blake Niemyjski
@niemyjski
Jan 27 2016 13:43
What one did you download?
Yeah mvvm
Was hard concept to grasp for me at first
Jonas Dralle
@JonasDralle
Jan 27 2016 13:45
Seems to be very fun
I was the one with this Error exceptionless/Exceptionless#128
I dunno what I did wrong back then but now it works
:)
Blake Niemyjski
@niemyjski
Jan 27 2016 13:47
:)
My bet is it was an issue with nuget and an update fixed it
Eric J. Smith
@ejsmith
Jan 27 2016 13:48
Glad to hear you are liking Exceptionless. Spread the word!
Jonas Dralle
@JonasDralle
Jan 27 2016 13:54
i will
even tho I have to admit that I think the premium features are pretty expensive
I dont know the number but I just submittet 3 Exceptions and he already tells me that I'm throtteled
And 15€/mo is a bit expensive for someone without income (Student)
Blake Niemyjski
@niemyjski
Jan 27 2016 13:55
care to explain your thoughts?
ah, the free plan only allows 3000/720*10 exceptions per hour before throttling
Jonas Dralle
@JonasDralle
Jan 27 2016 13:56
Yea I think that I might selfhost it
Already got an Linux Ubuntu here
mybe I donate someday something I fix a bug or whatever I can do
Linux Ubuntu Server
It's really great that it's open source
That's a big plus
Blake Niemyjski
@niemyjski
Jan 27 2016 13:56
We’re actually cheaper than almost all of our competitors and provide move (typically) then all of them (not always)
we only make about ~25% per plan and that goes towards my salary
we also offer a year of the small plan to anyone who contributes a non trivial pull request (e.g.., not a mispelled word)
Yeah!, if you need help setting up self host, let me know I’d be more than happy to help
Jonas Dralle
@JonasDralle
Jan 27 2016 13:59
My Software currently only exists on my Computer and Exceptionless isn't wired up 100% yet
Can I somewhere see how many User the software has and how often/long they used the software?
Can I do Behaviour Analysis with Exceptionless?
Blake Niemyjski
@niemyjski
Jan 27 2016 13:59
or you could take a stab at the code base :)
Yep
Jonas Dralle
@JonasDralle
Jan 27 2016 14:00
Cool
Blake Niemyjski
@niemyjski
Jan 27 2016 14:00
Screen Shot 2016-01-25 at 1.13.34 PM.png
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:00
hey niemyjski, take a loot at your private messages :)
Blake Niemyjski
@niemyjski
Jan 27 2016 14:00
It’s a premium feature, you can view your sessions here: https://be.exceptionless.io/session/dashboard
Jonas Dralle
@JonasDralle
Jan 27 2016 14:01
thats very cool
Can I also see how many use which version?
Eric J. Smith
@ejsmith
Jan 27 2016 14:01
If you like the app @JonasDralle it's important to help support it in any way. We are more than happy to have people help support us by contributing some of their time to the project. :-)
Jonas Dralle
@JonasDralle
Jan 27 2016 14:02
@ejsmith I'm a coding beginner but I'll keep my eyes open in case i find an easy to fix bug or something
Blake Niemyjski
@niemyjski
Jan 27 2016 14:02
@JonasDralle not currently, but we are planning on working on custom dashboards where you can pivot on anything :).
Eric J. Smith
@ejsmith
Jan 27 2016 14:02
Sounds good! :-)
@niemyjski we should have version listed in the sessions grid.
Jonas Dralle
@JonasDralle
Jan 27 2016 14:03
I'm a computer enthusiast since I can remember but it's been a short while since I'm using real programming langauges.
Previously I did some Scratch, RPG-maker and some scripting languages
But it's not comparable to Java, C or {insert your favorite language here} which has 1000x more power
@niemyjski I will be there when that happens ^^
Blake Niemyjski
@niemyjski
Jan 27 2016 14:05
Everyone starts somewhere. I started on qbasic / basic then on to bash scripting
look through our code and ask questions, it’s a good learning process :)
Jonas Dralle
@JonasDralle
Jan 27 2016 14:07
RPGmaker is the worst
It took decades to code cool stuff. Plus you can have like max 50 global scripts which sucks. Global Scripts are the only scripts that keep running when you change go in/out of buildings
And you need those for ay/night cycles for example or if you want that crops grow even when the user is somewhere else
Blake Niemyjski
@niemyjski
Jan 27 2016 14:11
I’m guessing they keep the count small so the game loop runs fast
Jonas Dralle
@JonasDralle
Jan 27 2016 14:12
plus this RPGMaker script is slow as hell
but I got the good habit of trying to get every algorithm linear or better
Blake Niemyjski
@niemyjski
Jan 27 2016 14:13
:(
could try making your own javascript game
we played around with dart to create a basic game a while back
Jonas Dralle
@JonasDralle
Jan 27 2016 14:15

I somewhere read/saw that I can exclude some parts from Exceptionless
As I am writing a small Diary-Software I want to keep Diary.Message private

Of couse I cant just regex everything out that contains "Message" (for example every exception)

is there any Interface to ignore this variable?
So its content never gets submitted
I think it's ok when Exceptionless submits the whole Diary-Class itself. It contains all Entries and such things as local settings and timestamps
But it would be a dickish move if the maybe-sensetive data would be submitted when an Error happens
Blake Niemyjski
@niemyjski
Jan 27 2016 14:17
@ejsmith raygun doesn’t provide a user agent and we’d have to also check an extra auth header...
I’m thinking that we add a new specific raygun / third party end point so we can set the user agent and pass it onto our event post api
that way parsing happens
Eric J. Smith
@ejsmith
Jan 27 2016 14:18
I've looked at theirs before they do have something they pass in that is the version / platform of the client.
I'd have to look again.
How do they pass their API key?
Blake Niemyjski
@niemyjski
Jan 27 2016 14:21
  client.Headers.Add("X-ApiKey", _apiKey);
I’m not seeing anywhere where they set a user agent
Eric J. Smith
@ejsmith
Jan 27 2016 14:21
Ok, we can add that as an option for us.
They do.
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:22
i confirm, there's not userAgent. But we can do a PR to their code and maybe they will accept. I already pushed a few things to them in the past
But we will have do to that for each clients they have and i do not have any knowledge for the other languages
Blake Niemyjski
@niemyjski
Jan 27 2016 14:23
@skoub I’m looking in the clients just to be sure
Eric J. Smith
@ejsmith
Jan 27 2016 14:23
They have something that tells them the platform that the submission is coming from almost have to. And I swear I remember seeing it.
Technically, we could fork their clients and even rename them as long as we provide attribution.
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:26
@ejsmith the info is inside the json object
they have the client name + version
Blake Niemyjski
@niemyjski
Jan 27 2016 14:26
    _raygunMessage.Details.Client.Name = "Raygun4Net.Mvc";
Eric J. Smith
@ejsmith
Jan 27 2016 14:26
Ahh
Blake Niemyjski
@niemyjski
Jan 27 2016 14:26
they put the client version and name inside of a json property
yeah
Eric J. Smith
@ejsmith
Jan 27 2016 14:26
So the event parser would have to pull it out.
Blake Niemyjski
@niemyjski
Jan 27 2016 14:26
well
it’s exepensive to have to do that
Eric J. Smith
@ejsmith
Jan 27 2016 14:27
The event parser already parses events.
Blake Niemyjski
@niemyjski
Jan 27 2016 14:27
if we do api/vX/raygun
we can pass it to the POST Controller action with a Raygun user agent that we pass to it
Eric J. Smith
@ejsmith
Jan 27 2016 14:27
What path do they submit to?
Blake Niemyjski
@niemyjski
Jan 27 2016 14:28
then the parser can explicitily check it before we deserialize it
/entries
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:28
i think the best option would be to have a special entry point only for raygun. The userAgent would be set to "raygun" for all clients
Blake Niemyjski
@niemyjski
Jan 27 2016 14:28
and you can specify any path
Eric J. Smith
@ejsmith
Jan 27 2016 14:28
So just /entries?
Blake Niemyjski
@niemyjski
Jan 27 2016 14:28
yeah
Eric J. Smith
@ejsmith
Jan 27 2016 14:28
We could add an extra path to our post action
Blake Niemyjski
@niemyjski
Jan 27 2016 14:28
@skoub if we put the version in with the api end point and they change there format you just bump the version on our end and add a new parser and now we support multiple versions of there client
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:29
you can change the path that they use. In the web.config, just add an attribute "endpoint" and set a full url path
Eric J. Smith
@ejsmith
Jan 27 2016 14:29
Then look for it and set stuff in the postinfo
Blake Niemyjski
@niemyjski
Jan 27 2016 14:29
We could but then how would you know they hit that path?
ohh I guess we might be able to default the user agent on that path
Eric J. Smith
@ejsmith
Jan 27 2016 14:29
Put the path in the eventinfo
Blake Niemyjski
@niemyjski
Jan 27 2016 14:29
ok give me a second :) gave me a great idea
Eric J. Smith
@ejsmith
Jan 27 2016 14:30
If we are going to do this. I say we just fork their clients so that we can change the default endpoint and rename them.
Maybe even change the headers to add a user agent.
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:33
in my opinion, this is not a good idea. You will have to manage the clients yourself in the future. Just change the attribute "endpoint" in the config file and you are good to go
Eric J. Smith
@ejsmith
Jan 27 2016 14:33
Right, but it's not a very good story for our users. Download the raygun client and change some settings on it.
The fork would be very minimal changes so would be easy to keep up to date.
I would imagine that this is going to piss them off, but I guess we just have to decide if we care. :-)
They released it under MIT it's fair game. :-)
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:36
but they will have to download your version of raygun? It would be more fun if the user can keep their libraries the way it is and just change a setting. "you want to change to Exceptionless, just point to us" :)
Eric J. Smith
@ejsmith
Jan 27 2016 14:37
Yes, that is a good point.
Could do both.
Ideally, I want them to be able to download the Exceptionless PHP client.
Would be really awesome to support iOS. Guess we would have to allow users to upload dsym files and then have a process that translates the stack traces.
Blake Niemyjski
@niemyjski
Jan 27 2016 14:41
I’d rather use theres, less maintance and then I don’t have to support there client code which is yucky
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:41
ah... i see. Well, this is up to you guys. Do you want to manage their clients each time they make them progress so you have "your signature" to the clients or you want your users use whatever they want and say "Exceptionless support all raygun clients, airbrake, sentry, etc...". It's your call.
Blake Niemyjski
@niemyjski
Jan 27 2016 14:42
no I don't
Jonas Dralle
@JonasDralle
Jan 27 2016 14:43
it's me again
Can I somehow ensure that specific fields and properties never got sent to the server?
It would be kind of absurd if I would AES(Serpent(Twofish)) every document that my software produces and then just dump it on sight once an exception occurs
Alexandre Jobin
@alexandrejobin
Jan 27 2016 14:43
i have to leave now. We keep in touch
Blake Niemyjski
@niemyjski
Jan 27 2016 14:44
ok
@JonasDralle yes
:)
Jonas Dralle
@JonasDralle
Jan 27 2016 14:45
oh thank you
sorry that i havent seen that myself
Blake Niemyjski
@niemyjski
Jan 27 2016 14:48
It’s all good
Blake Niemyjski
@niemyjski
Jan 27 2016 18:22
awwwwe YES
just called time warner cable and signed up (moving this weekend). and I got the 50mb internet (downgrade from what I currently have). Guy told me that in quarter 2, they are upgrading all 50mb accounts to 300mb down with 20mb up!!
the web is moving forward :D
Eric J. Smith
@ejsmith
Jan 27 2016 18:27
He's a good salesman.
Blake Niemyjski
@niemyjski
Jan 27 2016 18:29
yep
dam good
they are being bought by charter (whome I love)
Eric J. Smith
@ejsmith
Jan 27 2016 18:30
Fingers crossed for non-shitty internet for you.
Blake Niemyjski
@niemyjski
Jan 27 2016 18:51
:)
Sander Rijken
@srijken
Jan 27 2016 22:47
woohoo
green test
(deduplication)
Blake Niemyjski
@niemyjski
Jan 27 2016 22:50
:)
good job
Sander Rijken
@srijken
Jan 27 2016 22:51
not sure I’m 100% done yet, because the exception being handled in the test-case isn’t a very realistic fat exception
no inner, no stack etc
Blake Niemyjski
@niemyjski
Jan 27 2016 22:53
we can update that
I think we have error model tests you could bring an example in from
Sander Rijken
@srijken
Jan 27 2016 22:59
there’s one last problem
calculating the hash of something that’s a dictionary
you can’t just enumerate keys, and calculate from there, because the order of the keys isn’t guaranteed
I’m thinking about calculating all the key value pair hashes, ordering by hashcode, and then calculating a final has
h
that way it should be stable, regardless of dictionary internals
I will push in a minute, but please take a good look at the hash calculations and equals implementation of especially the dictionary
Sander Rijken
@srijken
Jan 27 2016 23:06
Another problem is RequestInfo.PostData. That’s of type object. Can’t create a good hash on that
Blake Niemyjski
@niemyjski
Jan 27 2016 23:08
yeah
that can be anything
I’d just ignore it
Blake Niemyjski
@niemyjski
Jan 27 2016 23:42
I’ll try and take a look later. I need to run to dinner
Is there anything specific you have a consern about?