profile
viewpoint
Ben Vinegar benvinegar Sentry San Francisco, CA http://benv.ca Engineering @getsentry, co-author of Third-party JavaScript. People respected me in 2013.

benvinegar/thirdpartyjs-code 201

Companion source code to Third-party JavaScript (the book)

benvinegar/seamless-talk 137

GothamJS 2012 talk on HTML5's seamless iframe attribute

benvinegar/jquery-jsonpi 109

jQuery plugin that enables the 'jsonpi' dataType parameter for $.ajax.

disqus/backbone.uniquemodel 95

Backbone.js plugin for ensuring unique model instances across your app

benvinegar/couchdb-xd 62

Cross-domain AJAX for CouchDB

benvinegar/Spectacles 39

Chrome Plugin that removes Quora's answer obfuscation for anonymous users

getsentry/sourcemaps.io 39

Web-based Source Map validator

benvinegar/freshbooks.rb 21

FreshBooks API wrapper. This copy is deprecated; please see bcurren's canonical copy.

benvinegar/editable.js 20

A cross-browser library for working with contentEditable DOM elements.

benvinegar/malt 13

Asynchronous Javascript dependency manager

issue commentgetsentry/sentry

When inviting a new or existing user to an Organization position isn't saved

@EvanPurkhiser Can you investigate?

thorerik

comment created time in 2 days

pull request commentgetsentry/sentry

feat(vercel): improve UI of project mapper

IMO you should use the AWS logo.

scefali

comment created time in 9 days

pull request commentgetsentry/sentry

fix(perf-view): Persist series selection in duration breakdown

It also means you can share a URL that will recreate the same graph/state!

Zylphrex

comment created time in 9 days

Pull request review commentgetsentry/sentry

fix(apm): Add inline tracing docs

+import React from 'react';+import styled from '@emotion/styled';+import * as Sentry from '@sentry/browser';++import withApi from 'app/utils/withApi';+import {Client} from 'app/api';+import {loadDocs} from 'app/actionCreators/projects';+import {t, tct} from 'app/locale';+import LoadingIndicator from 'app/components/loadingIndicator';++type Props = {+  api: Client;+

Shouldn't this just get caught by prettier?

dashed

comment created time in 12 days

pull request commentgetsentry/sentry

fix(ui): Make the export buttons the same size on the tags page

Pixels matter 🙏

Zylphrex

comment created time in 14 days

Pull request review commentgetsentry/sentry-docs

Update performance page to expected navigation and fix nav issues

 Learn more about performance monitoring in: - [Metrics]({% link _documentation/performance/performance-metrics.md %}): provides insight into user experience of your application based on custom thresholds - [Discover]({% link _documentation/performance/discover/index.md %}): view data across environments with pre-built queries. Customers subscribed to the Team or Business plan can use Discover to view comprehensive information sent to Sentry. +## Install

I'm assuming "Install" is the same terminology we use for this in similar sections.

PeloWriter

comment created time in 15 days

pull request commentgetsentry/sentry

fix(discover): Hide save query button once saved

From a design perspective, Sentry's preferred approach is to disable/"grey out" buttons rather hide or remove them.

Zylphrex

comment created time in 15 days

pull request commentgetsentry/sentry

fix(perf-views) Fix layout shifting after data is loaded

Wait, the after gif still shifts?

markstory

comment created time in 20 days

Pull request review commentgetsentry/sentry-docs

Add primary Performance Monitoring page

+---+title: Performance Monitoring+sidebar_order: 0+---++Performance monitoring helps developers measure Apdex, Throughput, and trace slow transactions down to the poor performing API call or DB query. Available for both JavaScript and Python SDKs, performance monitoring helps you both diagnose problems and measure your application's overall health. ++Learn more about performance monitoring in:++- [Homepage]({% link _documentation/performance/performance-homepage.md %}): displays a high-level report of application health, including problematic transactions and both Apdex and Throughput graphs+- [Distributed Tracing]({% link _documentation/performance/distributed-tracing.md %}): diagnose problems and view interactions across your software systems+- [Metrics]({% link _documentation/performance/performance-metrics.md %}): provides insight into user experience of your application based on custom thresholds+- [Discover]({% link _documentation/performance/discover/index.md %}): view data across environments with pre-built queries. Customers subscribed to the Team or Business plan can use Discover to view comprehensive information sent to Sentry.++## Getting Started with Performance for JavaScript++To get started with performance monitoring, first install the `@sentry/tracing package:`++```bash+npm install --save @sentry/tracing+```++Next, initialize the integration in your call to `Sentry.init`:++```jsx+import * as Sentry from '@sentry/browser';+import { Integrations as ApmIntegrations } from '@sentry/tracing';+Sentry.init({+  dsn: '<https://bc367fd982144d75923219dca8f35ad1@o1.ingest.sentry.io/2783252>',

This looks like a hardcoded DSN and Project got in here? Let's figure out how this is templatized ... or even just put in example values until then.

PeloWriter

comment created time in 21 days

pull request commentgetsentry/sentry-javascript

Remove use of the words blacklist and whitelist

I'm in favor of the direction and spirit of this change. But before we merge this, we (Sentry) need to discuss the exact terminology we want to replace it with, and make the change wholesale inside Sentry (e.g. across all SDKs and in the product).

For example, includedUrls doesn't sound correct to me. I've seen passUrls or safeUrls used as other alternatives. @HazAT @mitsuhiko let's figure this out.

AJDoubleW

comment created time in a month

pull request commentgetsentry/sentry

feat(ui): Add file icons to release detail changed files

This is awesome? Uh, can I also convince you to add a platform icon to the global project selector? ducks

matejminar

comment created time in a month

pull request commentgetsentry/sentry

feat(email): Add integration call to action at email bottom

Wow, love this change. Sharp design too.

ceorourke

comment created time in a month

pull request commentgetsentry/sentry

feat(ui): Add source maps settings

We will be moving Release Artifacts here in multiple other PRs.

We're going to make it easy to get here from Releases, right?

matejminar

comment created time in a month

pull request commentgetsentry/sentry

fix(ui): Add missing ownership rules for issue owner suggestions

Congrats!

taylangocmen

comment created time in a month

push eventgetsentry/sourcemaps.io

Ben Vinegar

commit sha eac90c959e6a5a12c892369b8e523474dbf47df9

Upgrade to @sentry/browser 5.x

view details

push time in 2 months

pull request commentgetsentry/sentry

feat: Add sort by users in issue stream

Whoa. Is this real life? 😇

scttcper

comment created time in 2 months

pull request commentgetsentry/sentry

feat(ui): Add commit count badge to release detail

Awesome turnaround, thanks @matejminar. I'd love to see if we could do the same for Files Changed and Artifacts.

matejminar

comment created time in 2 months

pull request commentgetsentry/sentry

feat(ui): Add commit count badge to release detail

Damn, quick turnaround @matejminar. Thank you!

matejminar

comment created time in 2 months

pull request commentgetsentry/sentry

fix(apm): Set the transaction name for JavaScript transactions before they are flushed

How do we document this in our SDKs, framework docs, etc. so that other people can easily follow this example? cc @HazAT

dashed

comment created time in 2 months

pull request commentgetsentry/sentry

feat(ui): Put release details widget into more prominent space

It's not obvious to me why this would link to Discover; this doesn't match the pattern we use elsewhere, where a button states clearly "Open in Discover".

matejminar

comment created time in 2 months

Pull request review commentgetsentry/sentry

24 hr graphs

 class GroupDetails extends React.Component<Props, State> {     const isLoading = loading || (!group && !isError);      return (-      <DocumentTitle title={this.getTitle()}>-        <React.Fragment>+      <React.Fragment>+        <DocumentTitle title={this.getTitle()}>

Swapping these elements is likely the cause of the pre-commit failure:

  at DocumentTitle.Object.<anonymous>.DocumentTitle.render (node_modules/react-document-title/index.js:31:27)
slohmes

comment created time in 2 months

Pull request review commentgetsentry/sentry-docs

Update JavaScript capture errors sections

 Then, you can see the error in your dashboard: [{% asset js-index/error-message.png alt="Error in Unresolved Issues with title This is my fake error message" %}]({% asset js-index/error-message.png @path %})  ## Capturing Errors-In most situations, you can capture errors automatically with `captureException()`.+Automatically and manually capture errors, exceptions, and rejections.++### Automatically Capture Errors+By including and configuring Sentry, the SDK will automatically attach global handlers to capture uncaught exceptions and unhandled rejections.++[{% asset js-index/automatically-capture-errors.png alt="Stack trace of a captured error" %}]({% asset js-index/automatically-capture-errors.png @path %})++Browsers take security measures when serving script files from different origins. To ensure errors are routed to Sentry, configure CORS headers, and add appropriate script attributes. 

I'd do something like this:

Note: Browsers may take security measures when serving script files from different origins that can block error reporting. If you find errors are not being reported properly, please see this troubleshooting section on Cross Origin Resource Sharing (CORS).

... with that last bit linking to the troubleshooting guide you've added below.

MimiDumpling

comment created time in 2 months

Pull request review commentgetsentry/sentry-docs

Update JavaScript capture errors sections

 basic stack trace. This exception is stored here for further data extraction.  : For breadcrumbs created from HTTP requests done via the legacy `XMLHttpRequest` API. This holds the original xhr object. +## Troubleshoot

This is typically called "Troubleshooting"; I'm not sure I've seen "Troubleshoot" as a heading before.

MimiDumpling

comment created time in 2 months

pull request commentgetsentry/sentry

perf(serializer): Add instrumentation serializers

Are we confident this would impact performance broadly in a negative way?

RyanSkonnord

comment created time in 2 months

Pull request review commentgetsentry/sentry-docs

Update JavaScript capture errors sections

 Then, you can see the error in your dashboard: [{% asset js-index/error-message.png alt="Error in Unresolved Issues with title This is my fake error message" %}]({% asset js-index/error-message.png @path %})  ## Capturing Errors-In most situations, you can capture errors automatically with `captureException()`.+Automatically and manually capture errors, exceptions, and rejections.++### Automatically Capture Errors+By including and configuring Sentry, the SDK will automatically attach global handlers to capture uncaught exceptions and unhandled rejections.++[{% asset js-index/automatically-capture-errors.png alt="Stack trace of a captured error" %}]({% asset js-index/automatically-capture-errors.png @path %})++Browsers take security measures when serving script files from different origins. To ensure errors are routed to Sentry, configure the CORS headers, and add script attributes. ++**CORS Attributes and Headers**++To gain visibility into a JavaScript exception thrown from scripts originating from different origins, do two things:

So, I think this is too much information for the docs at this stage. Like, 95-99% of users won't have to deal with this at all. It should be reserved for a troubleshooting section.

MimiDumpling

comment created time in 2 months

Pull request review commentgetsentry/sentry-docs

Update JavaScript capture errors sections

 By including and configuring Sentry, the SDK will automatically attach global ha  [{% asset js-index/automatically-capture-errors.png alt="Stack trace of a captured error" %}]({% asset js-index/automatically-capture-errors.png @path %}) -Keep in mind; browsers are taking some security measures when serving script files from different origins. For errors to always make their way to Sentry, make sure that you configure CORS headers and add appropriate script attributes. +Browsers take security measures when serving script files from different origins. To ensure errors are routed to Sentry, configure the CORS headers, and add script attributes. 

To ensure errors are routed to Sentry, configure the CORS headers, and add script attributes.

"The CORS headers" isn't correct; drop "the". "Appropriate script attributes" is more accurate than "add script attributes". The second half of this sentence was more accurate before edits.

MimiDumpling

comment created time in 2 months

pull request commentgetsentry/sentry-docs

Update JavaScript capture errors sections

This feels like an improvement. I think that "Keep in mind" block is ... a little overkill for this stage (and also the grammar seems rough). I'd guess less than 10% of people are going to have any trouble here (and probably not when they're fooling around w/ Sentry for the first time).

Maybe it should go in a "info" block or something. Also, the grammar could use some improving (the present tense feels odd, "browsers are taking some security measures" vs "browsers take security measures").

MimiDumpling

comment created time in 2 months

pull request commentgetsentry/sentry

WIP: ref(ui): Updated breadcrumbs filter/search

This looks great!

priscilawebdev

comment created time in 2 months

pull request commentgetsentry/sentry

feat(perf-view): Related Transactions button

Seems like long term, we should have something in the sidebar or elsewhere that says "this is the related transaction, here is its duration, etc" so that you have a reason to click through.

dashed

comment created time in 3 months

more