Show HN: Proxino -- Monitor and Debug your JavaScript
proxino.com
proxino.com
window.onerror = function(m, f, l){
var err = JSON.encode({ message:m, file:f, line:l })
(new Image).src = '/errors?e='+err
}
For Google Analytics users: window.onerror = function(m, f, l){
var err = [f, l, m].join(' : ')
_gaq.push(['_trackEvent', 'Errors', 'App', err, null, true])
}
Analytics will allow you to filter by OS, browser, and all the other environment data it already captures. And nice graphs as a bonus :) (new Image).src = '/errors?m='+encodeURIComponent(m)+
'&f='+encodeURIComponent(f)+'&l='+encodeURIComponent(l);
This way it also works on browsers that don't have native JSON (old IE mainly, but also firefox before 3.5). And those are also exactly the browsers where you are likely to get errors since you are probably not testing using them.You don't need to encode the strings, the browser will do that for src.
I don't see how that could be when you anyway have to parse the query string to get the e parameter. It costs nothing extra to get additional parameters.
> You don't need to encode the strings, the browser will do that for src.
Not in my testing - if the error message includes an & it will appear to the webserver as a new url parameter.
And actually that's a bug in your JSON version as well - you need to encode it before sending it.
I also typed encode instead of stringify, and forgot to add a semi-colon after wrapping new Image in parentheses...
1. Set the window.onerror to immediately push errors to an array 2. Load a small unique script that will create a basic sendError function to post the onerror arguments to an endpoint with a unique csrf set. 3. Loop through the arguments that are queued up and send them to the endpoint. 4. Replace the window.onerror with the sendError function.
Your endpoint can be an API that will log the data to either something like Graylog2 or whatever your favorite logging system is. Not 100% bullet proof but better then nothing.
You don't. Such a behavior is boring to them, so most won't. It does not provide money nor a way into the server, so no motivation.
If they want to DOS you they have many possible methods, adding this doesn't really change anything.
I typically develop my JS with a lot of console.log calls. Let's say a hundred at page load, and more for each user action, and when there's new data coming down from the server. I'm trying to fix a bug that my friend is having on my new project, but I can't reproduce it locally. I want to see those console logs from her sessions. There's no tool that's designed for this right now. For example, most analytics platforms send an HTTP request on every event.
I'm already using this wrapper http://paulirish.com/2009/log-a-lightweight-wrapper-for-cons..., which wraps console.log and keeps a history client-side. That would be a good starting point. Just push that history up to the server, up to once a second or so.
I should be able to filter by user and browser window session, and ideally other features of the client or log contents, but really the user+browser session are the most important.
Does a good solution exist?
Worst of all, it uses exactly one function, jQuery.ajax, which could be replaced with a `new Image; image.src = message` call or a 10 line XHR wrapper.
One I have is, how's this going to impact performance?
Also, once I sign up for the free trial, I'm presented with an account screen but not really told what to do next. Sure, I figured it out, but I think it should be more welcoming.
Good luck! I may use this.
noreply@ says you don't want to talk to me.
Make is easy to answer questions and help people. Utilize a tool like Zendesk, if needed.
Proxino is still in beta, so I wouldn't use it for mission-critical websites yet. But Proxino seems to be fixing problems and iterating quickly.
The voice was lacking some testosterone, but it's a detail. I'm sorry about the critics on the technical aspect of your app. There are indeed some true JS hackers around. I hope you get over it and collect all the good ideas to enhance your product.
I'm no JS hacker and I wasted allot of time trying to figure out why m app wasn't doing what I expected it to do. There is a problem there that needs a solution. As you see hackers have their own tricks to get around this problem. Collecting them and offering them in one plug and play product would be very usefull for all the people out there who aren't hackers.
status: "That domain isn't registered..."
And I don't really feel like paying $10 to TEST if the tool really works, let alone if I want to use it. Working demo please.