profile
viewpoint

DanielHeath/amped 4

Hackathon project: Interactive walkthrough of a museum

DanielHeath/aggremator 3

Social / rss -> email aggregator

DanielHeath/appy_bird 1

A stupid game for the pebble

DanielHeath/autoprintpreview 1

Firefox extension that renders a print preview within a page, so you can test print CSS more easily.

DanielHeath/autotest-js 1

An example of how to set up autotest to play nice with multi-browser javascript library js-test-driver

DanielHeath/babushka 1

Test-driven sysadmin.

DanielHeath/backbone 1

Give your JS App some Backbone with Models, Views, Collections, and Events

DanielHeath/bonsai 1

A tiny static web site generator

pull request commenthoneycombio/beeline-ruby

Add configuration for excluding child spans when a parent span is sam…

Testing another iteration of this in our staging env now...

DanielHeath

comment created time in 30 minutes

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha adf6040bec36b779e671159cf2f85cab12bf5386

Send child spans after parent span completes

view details

push time in 34 minutes

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha 2ebf48da5cf3ea3987097b9b642c90cf13ef7c71

or like this

view details

push time in an hour

pull request commenthoneycombio/beeline-ruby

Add configuration for excluding child spans when a parent span is sam…

For that, I'd need to split out the concept of "span finished" and "span sent" over in context.rb...

DanielHeath

comment created time in 2 hours

pull request commenthoneycombio/beeline-ruby

Add configuration for excluding child spans when a parent span is sam…

Wait, nevermind. For this to work I need to store child spans to send later; otherwise you can't perform any action that generates a span while deciding whether to sample or not.

DanielHeath

comment created time in 2 hours

create barnchDanielHeath/beeline-ruby

branch : investigate_sampling

created branch time in 2 hours

push eventDanielHeath/beeline-ruby

Martin Holman

commit sha 585992c1abdc8143ef617b038a5ae87c65a0f428

Be more lenient in expected output from AWS gem (#119) In a minor version bump of the AWS Dynamo gem the error_detail field is now populated causing these tests to break. Fix by being more lenient in expected output from AWS gem.

view details

Mike Goldsmith

commit sha 67232cadc746416830273f9e8f91bec34702406c

add rspec filter :focus for assisting with debugging tests (#120)

view details

Daniel Heath

commit sha 208a989eaab82bcbd5f29138bd1f6bcd81b21095

Add configuration for excluding child spans when parent span is sampled

view details

Daniel Heath

commit sha 73485d1f962c15da8aad93ff4ae70b0bdebbffed

Propagate sampling rules up the tree as well as down it

view details

Daniel Heath

commit sha a90e213af1aeb7158e28f642997b3c4160493fa8

Pass down 'sample_excludes_child_spans' to child spans

view details

push time in 3 hours

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha 4bd325cf2a4d0a8e124582fec759b5d17f1292bc

Pass down 'sample_excludes_child_spans' to child spans

view details

push time in 3 hours

pull request commenthoneycombio/beeline-ruby

Add configuration for excluding child spans when a parent span is sam…

The issue: I want to capture either an entire request, or nothing. Without this change, I get a smattering; 10% of one request, 30% of another.

The idea was that child spans would always have parent set, so I could propagate the sampling check.

One twist is that the parent is checked for sampling before it finishes - and might not even have all its event data set when deciding whether to sample. This is OK for my use since the parent span gets filled out before anything else happens.

I have been running it for a bit; some of it works, but not ActiveSupport notifications.

Reading the code, I can see that the activesupport stuff doesn't set parent, so the sampling does not propagate. I should be able to fix that though...

DanielHeath

comment created time in 3 hours

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 763ec56cfeeea20a3eb3bee6f8edab086276b77b

Merge pull request #15 from radiopaedia/prettier Run prettier over codebase

view details

Daniel Heath

commit sha 75229284ceaf6b98191211f655e6de71d7a829cf

Upgrade typescript

view details

Daniel Heath

commit sha ef220f2428597e422d867b09093f46e2d157d7b9

Enable strict mode and enable full type coverage

view details

push time in 21 hours

create barnchradiopaedia/dicomanon

branch : full-type-coverage

created branch time in 21 hours

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 17c86c71306cc2aa0920c28b66ccd47510d23e6d

Run prettier over codebase

view details

Daniel Heath

commit sha 763ec56cfeeea20a3eb3bee6f8edab086276b77b

Merge pull request #15 from radiopaedia/prettier Run prettier over codebase

view details

push time in a day

delete branch radiopaedia/dicomanon

delete branch : prettier

delete time in a day

PR merged radiopaedia/dicomanon

Run prettier over codebase
+79609 -78500

1 comment

55 changed files

DanielHeath

pr closed time in a day

pull request commentradiopaedia/dicomanon

Run prettier over codebase

TBQH I'm really trusting prettier here

DanielHeath

comment created time in a day

PR opened radiopaedia/dicomanon

Reviewers
Run prettier over codebase
+79609 -78500

0 comment

55 changed files

pr created time in a day

create barnchradiopaedia/dicomanon

branch : prettier

created branch time in a day

delete branch radiopaedia/dicomanon

delete branch : fewer-allocs

delete time in a day

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 7484557b0403aefecc4ff0bfb6977230adb97449

Avoid allocations inside hot paths

view details

Daniel Heath

commit sha 48ab57a820763ca1901ebcafd99d0c324f7ba1b8

Restore 'size' setting

view details

Daniel Heath

commit sha f4ea47f98b4b4d21231f1f92e66120459f44c14a

Merge pull request #14 from radiopaedia/fewer-allocs Avoid allocations inside hot paths

view details

push time in a day

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 48ab57a820763ca1901ebcafd99d0c324f7ba1b8

Restore 'size' setting

view details

push time in a day

PR opened radiopaedia/dicomanon

Reviewers
Avoid allocations inside hot paths
+70 -61

0 comment

12 changed files

pr created time in a day

create barnchradiopaedia/dicomanon

branch : fewer-allocs

created branch time in a day

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 97c3a552bbc0becf56a37e7be24218f0eb84e8f4

Tag values are not always strings

view details

push time in 7 days

issue commentcornerstonejs/cornerstoneWADOImageLoader

Loading on a page that already uses web workers causes messages to go to the wrong handler

Also, isTrusted is never checked on posted messages, so unrelated pages can maliciously interfere!

DanielHeath

comment created time in 7 days

issue openedcornerstonejs/cornerstoneWADOImageLoader

Loading on a page that already uses web workers causes messages to go to the wrong handler

I already have web workers on the page, and they send events that don't have the data property set.

This results in the image loader sometimes raising exceptions in its onmessage handler (depending on browser and load order) and the messages get skipped.

Would a PR be accepted to add a flag to all messages indicating they belong to this loader (and ignore if not set)?

created time in 7 days

fork DanielHeath/ts-sql

A SQL database implemented purely in TypeScript type annotations.

fork in 12 days

startedevanw/esbuild

started time in 13 days

issue openedradiopaedia/dicomanon

Clearing a frame

For multi-frame files with burned-in patient data on one slice, it'd be useful to be able to zero out that one frame.

According to the spec it appears that (0028,0009) contains another attribute ID, which (somehow? I'm unclear) tells you which offsets in the pixeldata contain which image.

created time in 13 days

issue commentcjheath/activefacts-compositions

Ancient JSON dependency doesn't work on ruby 3

The following Gemfile fails to bundle install for me:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.0.0'

gem 'activefacts-compositions', github: 'cjheath/activefacts-compositions'
gem 'json', '>2.0'

Removing activefacts-compositions allows json v2 to be installed.

DanielHeath

comment created time in 17 days

issue closedcjheath/activefacts-compositions

cannot load such file -- activefacts/input/constellation

Steps to reproduce:

  • Install the latest gem release or master version
  • Attempt to generate anything using bundle exec schema_compositor

closed time in 18 days

DanielHeath

issue commentcjheath/activefacts-compositions

cannot load such file -- activefacts/input/constellation

ahh, it's trying to do magic with the filename instead of reading bytes from STDIN.

DanielHeath

comment created time in 18 days

issue openedcjheath/activefacts-compositions

Ancient JSON dependency doesn't work on ruby 3

Consider allowing JSON v2

created time in 18 days

issue openedcjheath/activefacts-compositions

cannot load such file -- activefacts/input/constellation

Steps to reproduce:

  • Install the latest gem release or master version
  • Attempt to generate anything using bundle exec schema_compositor

created time in 18 days

issue closedflavorjones/loofah

Block MathML mutation XSS

Just tested this against the latest loofah version and got an alert(1).

https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass/

closed time in 21 days

DanielHeath

issue commentflavorjones/loofah

Block MathML mutation XSS

Argh! My mistake - loofah does in fact handle this (good job!)

DanielHeath

comment created time in 21 days

issue openedflavorjones/loofah

Block MathML mutation XSS

Just tested this against the latest loofah version and got an alert(1).

https://research.securitum.com/mutation-xss-via-mathml-mutation-dompurify-2-0-17-bypass/

created time in 21 days

issue commentbuildkite/elastic-ci-stack-for-aws

Intermittent docker error "could not find an available predefined network"

c5.9xlarge with 12 agents. Using docker-compose directly, but I had the same issue with the plugin.

zain

comment created time in 21 days

issue commentbuildkite/elastic-ci-stack-for-aws

Intermittent docker error "could not find an available predefined network"

I'm finding it easy to reproduce - if you use a single large runner with multiple agents, and your builds use docker-compose, you can quickly exhaust the available networks.

If we could specify a larger CIDR for docker networks, that would help.

Related: https://github.com/buildkite/elastic-ci-stack-for-aws/issues/512

zain

comment created time in 21 days

issue commentbuildkite/elastic-ci-stack-for-aws

UnfinishedJobsCount stuck at 4 with no jobs in queue

Possibly when the last build was cancelled instead of finishing?

DanielHeath

comment created time in 22 days

issue commentbuildkite/elastic-ci-stack-for-aws

UnfinishedJobsCount stuck at 4 with no jobs in queue

Tried EnableExperimentalLambdaBasedAutoscaling.

I'm still sometimes getting an instance left on all the time, even with no jobs queued.

DanielHeath

comment created time in 22 days

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha f9726c2580a30493369fb6b1d838b1ccdfb71add

Propagate sampling rules up the tree as well as down it

view details

push time in 24 days

issue commentbuildkite/elastic-ci-stack-for-aws

UnfinishedJobsCount stuck at 4 with no jobs in queue

EnableExperimentalLambdaBasedAutoscaling is disabled. Buildkite stack v4.5.0

DanielHeath

comment created time in a month

issue openedbuildkite/elastic-ci-stack-for-aws

UnfinishedJobsCount stuck at 4 with no jobs in queue

Possibly because an instance got terminated and didn't shutdown cleanly?

I'm not really clear on how, but I've got an elastic CI stack which is keeping an extra instance alive. Any idea where to look for this?

image

image

created time in a month

issue commenthalfdan/ruby-bitfield

Bitset serialization

I ended up writing my own pure-ruby bitfield, which turned out to be easy to serialize and faster for my use case.

The trick was to use a ruby string with the ASCII encoding for the buffer; this made bit-twiddling easy, since you can use chr / ord to get the numbers.

DanielHeath

comment created time in a month

pull request commentbuildkite/elastic-ci-stack-for-aws

Update docker & docker-compose

Ahh that makes sense.

One option would be to make it a param in the docker-compose plugin (which downloads/reuses a different version if specified).

In this particular case, we're aiming for a new release of the stack in the next week or two. Are you up for opening a PR to bump docker compose to 1.27.x? If so, we can sneak it in before the release.

Turns out I was experiencing some PEBKAC and no longer need the upgrade.

chloeruka

comment created time in a month

pull request commentbuildkite/elastic-ci-stack-for-aws

Update docker & docker-compose

Any way this could be a stack parameter for those who want to opt-in to newer versions?

I'd like to use the new 'target' feature in 1.27.x

chloeruka

comment created time in a month

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha 076700aab7da57f6711642c03fa3c5d4c0199a9d

Add configuration for excluding child spans when parent span is sampled

view details

push time in a month

push eventDanielHeath/beeline-ruby

Martin Holman

commit sha cf7b0625b682cf2b10bf88613bd9c77150573d71

specify pry and pry-byebug version (#86) Builds are failing due to these dependencies. Noticed this in #85. Looks like they dropped ruby2.3 support in a minor version bump for pry-byebug and the latest versions of pry don't play nicely with byebug.

view details

Martin Holman

commit sha e2271b1ec3abdebeb8187364298bae878ba0c363

matrix builds are finally here! (#87) Just noticed this on the circle ci blog. Makes the build config a lot simpler and way easier to update with new configs!

view details

Jason Meller

commit sha db9cee2db4c3b8323d1782964986e81f473223db

Properly pass options for Ruby 2.7 (#85) In Ruby 2.7 passing the last argument as an options hash if the receiver uses keyword arguments is no longer allowed and emits a deprecation warning. This PR applies the recommended fix of adding ** to covert the options hash into the correct keyword arg format. There may be more deprecation warnings to fix in other parts of the codebase but these were the ones that jumped out to me right away.

view details

Irving Reid

commit sha c823c4cbe6581d717c7464f3628031e8a5ab9924

Fix regex substitution for warden and `empty?` errors for Rack (#88) Three things I found in testing the Rails beeline with our application: - when finding available Warden scopes for user sessions, the regex substitution that was meant to extract the capture group containing the scope name was instead replacing it with a string containing the (invalid Unicode) character "\0001" - The Rack integration throws an error if the value passed does not implement `empty?()`; Ruby only implements that method on collection types. - Fields with boolean values would be omitted from the trace if the boolean was false, rather than being included with the `false` value. If this is intentional, fine, though I prefer to include it; there's a meaningful difference between "I don't have a value for that field" and "I have the value `false` for that field".

view details

Martin Holman

commit sha a07a3b1e95eadb601cd1647acf575b912934d578

Add ruby 2.7 to the matrix (#89) Now that we have an actual build matrix it's much easier to add new versions!

view details

Paul Osman

commit sha 1602fceb6dae3eeea609dabcf1e337fdc2859fac

Adding X-Forwarded-For to instrumented fields. (#91) For any apps using the rack integration, the X-Forwarded-For header will now be automatically instrumented. This is useful for services that are behind proxies, where remote_addr will likely be the proxy IP. X-Forwarded-For will be a single IP address or a list of IP addresses representing the originating IP address of a client connecting through an HTTP proxy or load balancer. X-Forwarded-Proto is also captured, which will identify the protocol (HTTP or HTTPS) used by a client. X-Forwarded-Port is sometimes used to identify the destination port that a client used to connect to the load balancer. It is used by AWS elastic load balancers amongst other load balancers and proxies.

view details

Martin Holman

commit sha abd35f5dcb25b9700bacce8898d3d2c827fba501

Trigger a nightly build (#90) Adds a workflow that runs once a day to lint and test whatever is on master. Followed these docs, no idea if it works or not https://circleci.com/docs/2.0/triggers/ It would be nice to stay on top of build failures like this https://github.com/honeycombio/beeline-ruby/pull/86 rather than have people submit PRs that fail to build because of some dependency failing.

view details

timcraft

commit sha 70c2274f3a642c203e86b1f6ca31c674952d051f

Add request.header.accept_language field (#94)

view details

Martin Holman

commit sha 409acf67b28f11a832f20c318dbb2fcdba2676aa

We don't need to exact match these hashes (#95) Redis 4.2 added some additional properties that the redis integration sucks in. Using `match` requires that the hash exactly match what is given. We can just use the fields as the minimum and use `include` so that this doesn't break in the future.

view details

Ralph Churchill

commit sha 0936656b0910c6fa8b89b5b93180ab2712bf8b7f

Support custom notifications based on a regular expression (#92) ActiveSupport::Notifications support subscribing to regular expressions, the beeline should too. Some internal code was using the event name as a lookup key, so regular expressions weren't being evaluated to match event names. This PR adds fallback logic: if we can't look up by event name, try _matching_. Worst case, things fail as they do now.

view details

Martin Holman

commit sha 45587a1b7baaf490d3a1700e77c5a86bd949a802

v2.1.0

view details

Martin Holman

commit sha 7e10dcbb5cc612c6d4283c870d2b7084170c8288

remove children after sending (#98) Resolves #84. The spec changes look really bad, but the main change is to dump the existing specs into another `describe` block and add an additional spec to check that after the child is sent it won't try to send any sent children. Might be easiest to just look at the last two commits as the shuffling around is isolated to the first commit.

view details

Martin Holman

commit sha 6db9d6e0f696d93212100cca5efdeefc7723afb7

v2.1.1

view details

Martin Holman

commit sha 24005f108d164654132bbe4522605fbef5102baa

Branch has been renamed (#99)

view details

Katie Bayes

commit sha 7c47b792fd2cd3de1f9942956a7419c4789673e4

UUID to w3c-friendly ids (#100) * use otel api to generate ids * remove log * lint fix, gems in alpha order * switch from using otel gem to local logic for id gen * linter fix * switch to hex * move new methods to private, update gemlock * switch id gen to raw bytes, transform to and from hex on propagation * end defs, whoops * pull invalid constants out of the parser methods * remove internal raw bytes stuff

view details

Mike Goldsmith

commit sha a14b4631ec626e72984eea2ade659e7722949f33

Add CODEOWNERS file (#101)

view details

Martin Holman

commit sha 86da72a982cbdbfc5948c703dd0df472962bbe0f

Add ruby 2.2 to the test matrix (#103) We claim to support ruby 2.2 in the `gemspec` yet we don't run any of our tests on this version of ruby. Adds 2.2 to the matrix and excludes framework versions that don't run on 2.2

view details

Matthew Lanigan

commit sha 694468cf3e208d1eb3663796d6c2676bf42e38dc

fix(client): reference current span in start_span (#105) Updates the Client#start_span method to store a reference to the current span, rather than repeatedly referencing `context.current_span`. The method `Span#send` is a public method, which means that it is possible for instrumentation to send the span from within a block passed to `Client#start_span`. Under those circumstances, one of two problematic scenarios can occur: 1) If the current span is _not_ the root span, then start_span will end up sending the parent span instead of the child span. 2) If the current span _is_ the root span, then start_span will raise `ArgumentError: no method name given`. This is due to the fact that `context.current_span` returns `nil` and `NilClass#send` expects a parameter, i.e. the method name to send. By storing a reference to the current span, we can guarantee that `Client#start_span` will always be operating on the correct span. Given that `Span#send` is idempotent, calling `#send` after a block has already sent the span is safe.

view details

Katie Bayes

commit sha c9e452a83290828d6ff38ca0812006b905c741bd

v2.1.2 (#106) v2.1.2

view details

Katie Bayes

commit sha 0957d0a065601ebb005834c5b545124e046ecc2e

refactor parsers and propagators, add w3c and aws support (#104) - refactor parsers and propagators, add parsers and propagators for w3c and aws support - add case insensitivity to honeycomb trace key parsing

view details

push time in a month

push eventDanielHeath/beeline-ruby

Martin Holman

commit sha cf7b0625b682cf2b10bf88613bd9c77150573d71

specify pry and pry-byebug version (#86) Builds are failing due to these dependencies. Noticed this in #85. Looks like they dropped ruby2.3 support in a minor version bump for pry-byebug and the latest versions of pry don't play nicely with byebug.

view details

Martin Holman

commit sha e2271b1ec3abdebeb8187364298bae878ba0c363

matrix builds are finally here! (#87) Just noticed this on the circle ci blog. Makes the build config a lot simpler and way easier to update with new configs!

view details

Jason Meller

commit sha db9cee2db4c3b8323d1782964986e81f473223db

Properly pass options for Ruby 2.7 (#85) In Ruby 2.7 passing the last argument as an options hash if the receiver uses keyword arguments is no longer allowed and emits a deprecation warning. This PR applies the recommended fix of adding ** to covert the options hash into the correct keyword arg format. There may be more deprecation warnings to fix in other parts of the codebase but these were the ones that jumped out to me right away.

view details

Irving Reid

commit sha c823c4cbe6581d717c7464f3628031e8a5ab9924

Fix regex substitution for warden and `empty?` errors for Rack (#88) Three things I found in testing the Rails beeline with our application: - when finding available Warden scopes for user sessions, the regex substitution that was meant to extract the capture group containing the scope name was instead replacing it with a string containing the (invalid Unicode) character "\0001" - The Rack integration throws an error if the value passed does not implement `empty?()`; Ruby only implements that method on collection types. - Fields with boolean values would be omitted from the trace if the boolean was false, rather than being included with the `false` value. If this is intentional, fine, though I prefer to include it; there's a meaningful difference between "I don't have a value for that field" and "I have the value `false` for that field".

view details

Martin Holman

commit sha a07a3b1e95eadb601cd1647acf575b912934d578

Add ruby 2.7 to the matrix (#89) Now that we have an actual build matrix it's much easier to add new versions!

view details

Paul Osman

commit sha 1602fceb6dae3eeea609dabcf1e337fdc2859fac

Adding X-Forwarded-For to instrumented fields. (#91) For any apps using the rack integration, the X-Forwarded-For header will now be automatically instrumented. This is useful for services that are behind proxies, where remote_addr will likely be the proxy IP. X-Forwarded-For will be a single IP address or a list of IP addresses representing the originating IP address of a client connecting through an HTTP proxy or load balancer. X-Forwarded-Proto is also captured, which will identify the protocol (HTTP or HTTPS) used by a client. X-Forwarded-Port is sometimes used to identify the destination port that a client used to connect to the load balancer. It is used by AWS elastic load balancers amongst other load balancers and proxies.

view details

Martin Holman

commit sha abd35f5dcb25b9700bacce8898d3d2c827fba501

Trigger a nightly build (#90) Adds a workflow that runs once a day to lint and test whatever is on master. Followed these docs, no idea if it works or not https://circleci.com/docs/2.0/triggers/ It would be nice to stay on top of build failures like this https://github.com/honeycombio/beeline-ruby/pull/86 rather than have people submit PRs that fail to build because of some dependency failing.

view details

timcraft

commit sha 70c2274f3a642c203e86b1f6ca31c674952d051f

Add request.header.accept_language field (#94)

view details

Martin Holman

commit sha 409acf67b28f11a832f20c318dbb2fcdba2676aa

We don't need to exact match these hashes (#95) Redis 4.2 added some additional properties that the redis integration sucks in. Using `match` requires that the hash exactly match what is given. We can just use the fields as the minimum and use `include` so that this doesn't break in the future.

view details

Ralph Churchill

commit sha 0936656b0910c6fa8b89b5b93180ab2712bf8b7f

Support custom notifications based on a regular expression (#92) ActiveSupport::Notifications support subscribing to regular expressions, the beeline should too. Some internal code was using the event name as a lookup key, so regular expressions weren't being evaluated to match event names. This PR adds fallback logic: if we can't look up by event name, try _matching_. Worst case, things fail as they do now.

view details

Martin Holman

commit sha 45587a1b7baaf490d3a1700e77c5a86bd949a802

v2.1.0

view details

Martin Holman

commit sha 7e10dcbb5cc612c6d4283c870d2b7084170c8288

remove children after sending (#98) Resolves #84. The spec changes look really bad, but the main change is to dump the existing specs into another `describe` block and add an additional spec to check that after the child is sent it won't try to send any sent children. Might be easiest to just look at the last two commits as the shuffling around is isolated to the first commit.

view details

Martin Holman

commit sha 6db9d6e0f696d93212100cca5efdeefc7723afb7

v2.1.1

view details

Martin Holman

commit sha 24005f108d164654132bbe4522605fbef5102baa

Branch has been renamed (#99)

view details

Katie Bayes

commit sha 7c47b792fd2cd3de1f9942956a7419c4789673e4

UUID to w3c-friendly ids (#100) * use otel api to generate ids * remove log * lint fix, gems in alpha order * switch from using otel gem to local logic for id gen * linter fix * switch to hex * move new methods to private, update gemlock * switch id gen to raw bytes, transform to and from hex on propagation * end defs, whoops * pull invalid constants out of the parser methods * remove internal raw bytes stuff

view details

Mike Goldsmith

commit sha a14b4631ec626e72984eea2ade659e7722949f33

Add CODEOWNERS file (#101)

view details

Martin Holman

commit sha 86da72a982cbdbfc5948c703dd0df472962bbe0f

Add ruby 2.2 to the test matrix (#103) We claim to support ruby 2.2 in the `gemspec` yet we don't run any of our tests on this version of ruby. Adds 2.2 to the matrix and excludes framework versions that don't run on 2.2

view details

Matthew Lanigan

commit sha 694468cf3e208d1eb3663796d6c2676bf42e38dc

fix(client): reference current span in start_span (#105) Updates the Client#start_span method to store a reference to the current span, rather than repeatedly referencing `context.current_span`. The method `Span#send` is a public method, which means that it is possible for instrumentation to send the span from within a block passed to `Client#start_span`. Under those circumstances, one of two problematic scenarios can occur: 1) If the current span is _not_ the root span, then start_span will end up sending the parent span instead of the child span. 2) If the current span _is_ the root span, then start_span will raise `ArgumentError: no method name given`. This is due to the fact that `context.current_span` returns `nil` and `NilClass#send` expects a parameter, i.e. the method name to send. By storing a reference to the current span, we can guarantee that `Client#start_span` will always be operating on the correct span. Given that `Span#send` is idempotent, calling `#send` after a block has already sent the span is safe.

view details

Katie Bayes

commit sha c9e452a83290828d6ff38ca0812006b905c741bd

v2.1.2 (#106) v2.1.2

view details

Katie Bayes

commit sha 0957d0a065601ebb005834c5b545124e046ecc2e

refactor parsers and propagators, add w3c and aws support (#104) - refactor parsers and propagators, add parsers and propagators for w3c and aws support - add case insensitivity to honeycomb trace key parsing

view details

push time in a month

pull request commenthoneycombio/beeline-ruby

Add configuration for excluding child spans when a parent span is sam…

Ahh - I had an old copy around that was still using master, so I didn't pick up changes. Will rebase.

DanielHeath

comment created time in a month

create barnchDanielHeath/beeline-ruby

branch : sample_children

created branch time in a month

push eventDanielHeath/beeline-ruby

Daniel Heath

commit sha 743dbcb2940478d1f690b0f3656792994b55bbef

Add configuration for excluding child spans when a parent span is sampled

view details

push time in a month

started200ok-ch/organice

started time in a month

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 1b2c8a81d4aa70508339b7b39e4aec19b209338f

Fix type

view details

Daniel Heath

commit sha b796489cb3ed7ca7faeb1da083a100da7d48a6fe

Add types

view details

Daniel Heath

commit sha 024a56266f163c33db143cb1c5c1fa837329a289

Add types to policies

view details

Daniel Heath

commit sha 99cd7e6ef2c4c0196b687e811aa58372449ce95a

Add 'age bucket' for preserving patient age information. Preserve patient sex by default.

view details

Daniel Heath

commit sha 11a4b9fb81b765bafa775b2060519814c382d37e

Add policy for preserving patient weight within 5kg

view details

Daniel Heath

commit sha dc52e12680aec65687422798959ad49e266f219e

Allow generally-safe image-meta fields through

view details

push time in a month

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 6c38d1a57c00beea02cee57d44a09bb34171dcc3

Add tag numbers to name map

view details

push time in a month

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 820861e995b21d6109e0b6358535e15edd0580e3

Add types for dictionary use

view details

Daniel Heath

commit sha 5eaed33e06c8f4fc0b5d718da30ed0bdb45964f7

Remove private tags from dictionary (300kb or so, unused)

view details

Daniel Heath

commit sha 6f941735e96485e57a7ac55896e329322611eb90

Remove dicom version from dictionary (no longer used)

view details

push time in a month

issue commentradiopaedia/dicomanon

Filesize of dictionary

I've made a couple of commits stripping it down to 300kb or so. Old versions of the file are still in git, so if we find a use for that data in future we can always pull it back out.

DanielHeath

comment created time in a month

issue closedradiopaedia/dicomanon

CT removing windowWidth / windowHeight by default?

Loading a CT file (sopclass 1.2.840.10008.5.1.4.1.1.2) strips the window/level - should dxImageModulePolicy be applied to those files by default? Is there ever a situation where window/level is something we want to remove?

closed time in a month

DanielHeath

issue openedradiopaedia/dicomanon

Filesize of dictionary

It looks like dictionary.ts stores several fields that shouldn't really be needed. Everyone who visits the page needs to download & parse it, and it's 1.1mb.

created time in a month

issue openedradiopaedia/dicomanon

CT removing windowWidth / windowHeight by default?

Loading a CT file (sopclass 1.2.840.10008.5.1.4.1.1.2) strips the window/level - should dxImageModulePolicy be applied to those files by default? Is there ever a situation where window/level is something we want to remove?

created time in a month

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 2056956050f4bf22f8bddcd9cd389e48c1a88b40

Remove console noise

view details

push time in a month

Pull request review commentradiopaedia/dicomanon

Datamunching (Issue #8)

 export default class ValueRepresentation {           } else if (this.maxLength) {             valid = checklen <= this.maxLength;           }-           var errmsg = "Value exceeds max length, vr: " + this.type + ", value: " + checkValue + ", length: " + displaylen;           if (!valid) {-            // if(isString)-                // console.log(errmsg)-            // else+             if(isString)+                 console.log(errmsg)

Random console.log is typically unhelpful. Is there some action to take here?

plwp

comment created time in a month

PullRequestReviewEvent

Pull request review commentradiopaedia/dicomanon

Datamunching (Issue #8)

 RUN npm install -g yarn COPY package.json ./ COPY yarn.lock ./ RUN yarn install+RUN yarn add jest

Reverted and built assets

plwp

comment created time in a month

PullRequestReviewEvent

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 45d90d2c7ca6ee976f51d26d61c00a90619bf3ff

Build project

view details

push time in a month

push eventradiopaedia/dicomanon

plwp

commit sha 35943a9ab1b75a4d7acc8ed3a927155524a94401

If pixel data was encoded as UC it would be trimmed to oblivion

view details

plwp

commit sha f7686dc2858a7880f2fdf12f7ff22fb2846ddc9a

Tried to test old library, buggy af

view details

plwp

commit sha 4d837e732b566d51c5579624fae5f6fd6671dc88

Fixed issue #8 (byte munching)

view details

plwp

commit sha c063a9739ff1fb8b3f0d856ee58f794c823f2fcd

Merge remote-tracking branch 'upstream/master'

view details

plwp

commit sha 2d273f21ee2bab12870f8b280011f37977055366

Unmunged some errors

view details

Daniel Heath

commit sha f3058f21454bf19cd26c20e08da66bceb301045c

Merge pull request #9 from plwp/master Datamunching (Issue #8)

view details

push time in a month

PR merged radiopaedia/dicomanon

Reviewers
Datamunching (Issue #8)

Pixel data was being read in fragments using the concat method to a fragmentBuffer. The fragmentBuffer offset wasn't being set in the first instance causing the first fragment of pixel data to be over-written. ValueRepresentation.ts:317

Added some unit tests and minor fixes.

Read HEX now returns uppercase strings because it looked nicer. I'm hoping that doesn't break anything :|

+228924 -215668

1 comment

52 changed files

plwp

pr closed time in a month

pull request commentradiopaedia/dicomanon

Datamunching (Issue #8)

That's roundtripping correctly for me!

plwp

comment created time in a month

Pull request review commentradiopaedia/dicomanon

Datamunching (Issue #8)

 export class BinaryRepresentation extends ValueRepresentation {                     }                     var frameItemLength = stream.readUint32(),                         thisStream = stream.more(frameItemLength);-+                    fragCount++;+                    fragSizeRead+=frameItemLength;+                    // Set the fragment stream to this stream on the first try                     if (fragmentStream === null) {                         fragmentStream = thisStream;+                        // FIX! This offset wasn't being set causing us to overwrite the first fragment.+                        fragmentStream.offset = thisStream.size;

argh

plwp

comment created time in a month

PullRequestReviewEvent

create barnchDanielHeath/rustymaze

branch : master

created branch time in a month

created repositoryDanielHeath/rustymaze

created time in a month

push eventradiopaedia/dicomanon

Daniel Heath

commit sha d3c7a5fa989f689b0a39fc8aa02c80864243714b

Revise types again

view details

push time in 2 months

push eventradiopaedia/dicomanon

Daniel Heath

commit sha 7637577372270a6e22188cebacb2bef639861750

Add exported type

view details

push time in 2 months

push eventradiopaedia/dicomanon

Daniel Heath

commit sha b8378e522fa2d393ff61f7b3f18045ccf9fe9d58

Fix vr types

view details

Daniel Heath

commit sha fa3234bc8a8e4de0ce790ebcc2f5b9d4cb0d0152

Make it easier to run from node

view details

Daniel Heath

commit sha 00c69a7a59ab8ef982d060849fc7909b8a0e2cc7

Roundtrip hex values correctly

view details

Daniel Heath

commit sha cb2d4a017cbde3152e556db0d82b03ea688adda1

Add missing readInt8

view details

Daniel Heath

commit sha 9f5c6fe89b2f1160547ca1d5a3d298dd52b1c723

Add roundtrip spec

view details

push time in 2 months

issue commentradiopaedia/dicomanon

Cornerstone parser library?

I had a try at swapping in the pixel data from dicom-parser (that is, keeping the existing parse, also reading the tag data via dicom-parser, then comparing them).

Based on that, it appears that the read is happening fine.

Based on instrumenting the writer, the write is also happening fine.

This leaves me marginally confused (perhaps some subtlety of how buffers are implemented is the culprit?)

DanielHeath

comment created time in 2 months

create barnchradiopaedia/dicomanon

branch : parse-pixel-data

created branch time in 2 months

issue commentradiopaedia/dicomanon

Cornerstone parser library?

Isn’t metadata written before p10 data, sometimes with different endianness?

Thanks, Daniel Heath

On 1 Sep 2020, at 6:33 pm, plwp notifications@github.com wrote:

Dicom doesn’t really make a distinction between metadata and data, it’s all just tags.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Cornerstone parser library?

This repo has got a dicom dictionary which records what the expected format of all the tags are.

dicomParser doesn't, because it only unpacks elements on-demand and you have to ask it for the right type when you ask it to do the unpack. Instead, it stores the offset in the original stream and how to unpack it.

This is awkward when it comes to replacing a field with a new value (especially if the new value has a different length to the original).

So, converting it to use dicomParser will require a bit of fiddling.

One alternative might be to use dicomParser to pull out the image data, which is the only part that's failing to parse, but that seems pretty unsatisfying; the underlying bug seems likely to affect something else at some point.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Cornerstone parser library?

Looks like dicom-parser has no distinction between the 'meta' data and the rest (see https://github.com/cornerstonejs/dicomParser/blob/82573d94342e12b4bae4fcd2e93f91bb061474cf/src/parseDicom.js#L149 ).

Do we need a way to figure out which ones belong in the meta and which belong in the p10 datastream when writing?

DanielHeath

comment created time in 2 months

issue commentprojectM-visualizer/projectm

Segfault in current master

I haven't been able to reproduce this after several more days running, so I don't have any further details for you.

Thanks, Daniel Heath

On Mon, Aug 31, 2020, at 12:29 AM, milkdropper wrote:

I could not reproduce with projectM-SDL on suksma - never waership.milk, so I think this could be specific to pulseaudio. Tagging this issue as pulseaudio.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/projectM-visualizer/projectm/issues/411#issuecomment-683427458, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALSRRS4LYATYWHO6D4YN3SDJO5PANCNFSM4QMKQC2Q.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Sigh. I'm all over the place; now I switch to another file and the read seems fine but the write is off. Perhaps this isn't the ideal place for a stream-of-consciousness debug log...

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Ah crap. I've been looking at the writer all this time, and feel terribly silly for realizing that it's fine, but the data isn't being read correctly

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Wait a second - could the code in BinaryRepresentation be assuming that the transfer syntax at write-time EXPLICIT_LITTLE_ENDIAN?

I've got a file with meta['00020010'].Value == '1.2.840.10008.1.2.4.70'. Could that make the offsets for binary data get encoded wrong?

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

I can't help but notice that var fragmentSize = 1024 * 20 in the tag-writing code is the exact amount of data getting chopped off...

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

None of the other tags get resized (but then, none are close to the same size)

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

So, I've instrumented WriteBufferStream so that all writes to the 'root' buffer stop when any written byte doesn't match the original, then run a file through a roundtrip (load / dump).

The first place it stops is in concat, when adding the pixeldata tag (with a BinaryRepresentation). That exactly matches the 309D offset I was seeing earlier!

So, it looks like somehow the pixel data isn't getting transcribed correctly. Signing off for the week - hopefully I'll be able to figure it out early next week.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Alright, fixing the padding doesn't actually fix the truncation, so I'll keep looking

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Depressingly, half our uploads come from ie11 machines (presumably in hospitals; I don't imagine many people install it at home on purpose)

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Wait, if padStart exists how did the left-pad fiasco happen?

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

I designed a CPU once, but that was 15 years ago; the last 5 years I've mostly dealt with "oh, you meant that interpretation of that word"

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

This is two layers lower in the stack than I usually work; I'm still making progress, but it involves dusting off some long-dormant skills.

To confirm:

const {WriteBufferStream} = require('../lib/BufferStream')
var fileStream = new WriteBufferStream(4096, true);
fileStream.writeHex("000102030405060708090A00000000000000000000000000000000000000000")
fileStream.offset = 0
console.log(fileStream.readHex('000102030405060708090A'.length)) // 0123456789a00000000000

I would expect that console.log to return the original string.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Ahh. readHex and writeHex are not opposites (seems if you pass a 40-character string to writeHex and it'll write 20 bytes; read 20 bytes with readHex and it'll return a 20 character string).

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

I feel like readHex should error out if it reads data for which this.readUint8().toString(16); doesn't give you a single character.

DanielHeath

comment created time in 2 months

issue commentradiopaedia/dicomanon

Round-tripping wipes out a considerable amount of data

Also, I'm not getting 043B as the offset - with a pure round-trip (no anon), I get the first diff at 309D.

DanielHeath

comment created time in 2 months

more