GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — jdotc1 - Overview

@jdotc1 jdotc1 Follow
More
  • Overview
  • Repositories
  • Projects
  • Packages
  • Stars
@jdotc1
jdotc1
Follow
View jdotc1's full-sized avatar

Jeff jdotc1

Follow
medical imaging security · radiation oncology · radiomics
6 followers · 15 following
  • New York, NY
  • 09:12 (UTC -05:00)
  • https://github.com/jdotc1
  • https://orcid.org/0009-0005-8244-8646

Achievements

Achievement: Pair Extraordinairex3Achievement: Pull Sharkx4Achievement: YOLOAchievement: Quickdraw

Achievements

Achievement: Pair Extraordinairex3Achievement: Pull Sharkx4Achievement: YOLOAchievement: Quickdraw

Highlights

  • Pro
More
  • Overview
  • Repositories
  • Projects
  • Packages
  • Stars
jdotc1/README.md

medical imaging security · radiation oncology · radiomics

I focus on hardening and maintaining open-source medical imaging and research software. My upstream contributions strengthen DICOM/NIfTI parsing, de-identification integrity, archive and filesystem safeguards, authentication and API boundaries, safe executable handling, and CI supply-chain controls. I also develop native Apple Silicon (ARM64) privacy and binary-analysis tools, drawing on clinical experience in MR imaging and radiomics.

239 authored PRs merged across 115 external repositories, spanning medical imaging, scientific data integrity, privacy, and platform engineering.

Selected security and privacy contributions

Biomedical imaging

Merged contributions
Imaging parser hardening
NiBabel #1568 and NIFTI-Reader-JS #58: reject undersized NIfTI extensions before reading payloads.
highdicom #471: reject undefined DICOM encapsulated pixel-fragment lengths before reading their payloads.
Bruker MRI input validation
ITK #6990: validate geometry-array cardinalities before indexed access; addresses one part of a broader upstream security issue.
NRRD input validation
pynrrd #173: reject nonpositive dimensions and axis sizes before reading NRRD data or accessing detached files.
Private model-download staging
nnU-Net #3078: use a unique private temporary directory for model download archives and clean up after use.
DICOM receive-path safety
DICOM-rs #845: reject unsafe SOP Instance UIDs before storing received DICOM files.
Archive extraction containment
Nilearn #6654: validate extraction destinations by path components to prevent sibling-prefix confusion in containment checks.
OpenNeuro download containment
nitrain #125: keep downloaded dataset paths within the intended data root.
De-identification policy integrity
deid #305: parse inline comments without breaking func:/var: lookups or quoted hashes.
deid #306: preserve earlier named filter rules so later recipes cannot silently replace them.
deid #307: refresh DICOM field lookups and apply KEEP rules to current fields, including newly added ones.
Validation-state isolation
dicom-validator #303: restore pydicom's process-wide reading-validation mode after success or failure so permissive settings do not persist.
Medical imaging permissions
deid #304: default new pixel-cleaner output directories to owner-only permissions.
HTML output encoding
dicom-validator #301: escape filenames in HTML report headings to render markup as text.
Temporary executable isolation
RSNA Anonymizer #41: isolate each process's compiled macOS documentation helper in a private temporary directory.
Shell argument integrity
BIDScoin #302: quote image, output, and mask paths in local SynthStrip commands.
surfa #86: preserve FreeView subtitle text as a literal shell argument.
Supply chain reproducibility
dcm2niix #1046: pin optional Cloudflare zlib to a source commit.
Archive checksum enforcement
PyMedPhys #2394: enforce TRF archive checksums under Python -O; retain incoming logfiles when verification fails.

Security, privacy, and data-integrity engineering

Merged contributions
Untrusted executable execution prevention
tessera #369: prevent read-only status checks from executing alternate binaries discovered through PATH; exclude unsafe path entries and separate CLI discovery from MCP/UI status handling.
Authentication abuse controls and OAuth route assurance
ContribIQ #61: enforce configurable per-client-IP login throttling with 429 responses and regression tests.
ContribIQ #62: stabilize GitHub OAuth route verification using public FastAPI reverse routing.
CI shell-injection prevention
provlift #102: move workflow expressions out of executable Bash source into step environment variables; add metacharacter-injection regression tests.
Broker diagnostic redaction and loopback threat modeling
stockwise #428: mask broker client, app, and login identifiers in diagnostic output.
stockwise #429: explain shared-machine exposure of unauthenticated loopback HTTP/MCP endpoints and recommend bearer tokens.
Immutable release workflows and dependency updates
Islet #186: pin four release-critical GitHub Actions to immutable commits and enable scheduled action updates.
Islet #185: activate weekly Dependabot npm dependency checks.
Authentication-secret and API response hardening
tachyoncms #61: add Cache-Control: no-store to successful login and API-key issue/rotation responses carrying secrets.
tachyoncms #60: apply anti-sniffing, anti-framing, and no-referrer HTTP headers to normal, 404, and recovered 500 responses.
SQL-injection trust-boundary
tachyoncms #191: clarify that collection-index identifiers originate from validated schema fields and IDs, while request-supplied values remain bound parameters.
Prompt-injection detection regression coverage
moodle-mcp #31: test English and Brazilian Portuguese injection-like and benign inputs; explicitly retain two known heuristic bypasses as expected failures. The detection remains advisory, not a security boundary.
Trusted infrastructure executable selection
provlift #90: prioritize the operator-provided Terraform/OpenTofu binary over repository configuration, with precedence regression tests.
Broker credential and service-exposure security
stockwise #411: clarify broker credential protection, live-order safeguards, risks of remotely exposing HTTP/MCP services, CSP, plugin isolation, and private vulnerability reporting.
Unintended file overwrite prevention
fonttools #4342: protect unrelated ZIP archives during file generation.
svglib #518: parse compressed SVGs without overwriting sibling files.
Build frontend error integrity
pyproject-api #329: preserve backend paths ending in spaces.
pyproject-api #337: preserve failed-backend diagnostics across process boundaries.
S3 request integrity
s3fs #1067: forward delete safeguards, including expected bucket owner and MFA parameters.
s3fs #1068: honor exclusive-create conditions, ACLs, and metadata for zero-byte writes.
Array index bounds enforcement
PyTables #1389 and #1393: reject invalid indices before data access, preventing unintended reads and writes.
SFTP directory permissions
fsspec #2358: honor requested permissions when creating parent directories.
Permission-scoped CI
XCP-D #1640: validate fork lockfiles with read-only permissions while restricting write access to same-repository updates.
CI supply-chain integrity
provlift #89: pin 36 third-party GitHub Actions references in workflows and examples to immutable commits, with documented version annotations and regression checks.
dot #64: pin five build-workflow actions to immutable commits.
Cross-tenant memory privacy
ContextFirewall #64: avoid revealing foreign-namespace memory existence or ownership through unauthorized forget requests.
MCP loopback request validation
tessera #246: reject DNS-rebinding attempts through Host validation on loopback HTTP endpoints, including health checks.
Error-message credential protection
stockwise #230: redact Yahoo session crumb URLs from failed-request diagnostics.
Example service isolation
a2a-hub #60: avoid publishing example agent ports to host interfaces in Docker Compose.
Code-signature evidence integrity
REA #5765: preserve partial Mach-O signature observations and explicitly flag incomplete per-architecture coverage.
REA #5778: reject mixed native dyld diagnostics instead of misclassifying them as known refusals.

My projects

I develop macOS applications, data-integrity tools, and reusable libraries. Each repository documents its own licensing and distribution terms.

Project Function
DICOM Anonymizer icon
DICOM Anonymizer
Locally pseudonymize MR, CT and RTSTRUCT metadata, including reference-consistent UID remapping, output audits and interruption recovery. Source files are preserved; pixels and contours are not scrubbed. Releases.
AIRS icon
AIRS
Review ARM64 Mach-O unwind and structural evidence without executing inspected binaries, with explicit coverage and saved reports. Releases.
EntitlementDiff icon
EntitlementDiff
Compare declared entitlements between macOS app builds and architectures, preserving exact typed values and saved comparisons. Releases.
SidecarCompare icon
SidecarCompare
Compare MRI JSON acquisition metadata with exact numbers, original tokens and documented units in a native app and shared CLI core.
Lumen Catalog icon
Lumen
Build macOS interfaces with semantic design tokens, editable themes, reusable SwiftUI/AppKit components and an interactive Catalog. The related LumenUI repository tracks the broader component system.
MacScope icon
MacScope
Explore the architecture and source of the native macOS binary-analysis workspace, including coordinated disassembly, graph, pseudocode and hex views and isolated workers.
Prism Native MCP Use a local MCP server to build native GraphPad Prism tables, descriptive analyses, editable graphs and layouts from supplied observations.

Additional contributions

Biomedical security tooling

Merged contributions
Array type and view integrity
PyTables #1387: preserve coordinate views and read-only indices.
PyTables #1388: reject non-integer Atom dimensions before coercion.
Scientific array correctness
batchgenerators #144: retain requested subunit scale bounds in spatial augmentation.
xarray #11793: handle variable-width string arrays in str.extract.
Scientific fitting-cache integrity
silx #4751: compare cached fitting data safely when input lengths change, avoiding broadcasting errors and false cache hits.
Atomic download publication
BrainStat #385: publish downloads atomically after successful copying, preserving existing files on failure.
Imaging data and geometry integrity
highdicom #486: prevent integer overflow during volume normalization.
highdicom #487: preserve DICOM structured-report temporal-coordinate sequence types.
highdicom #488: preserve root/non-SR context in content-item queries and insertion.
highdicom #489: correctly decode maximum-length LUTs and prevent unintended mutation of caller Datasets.
PyVista #9454: compare structured-data extents to distinguish cell layouts and shifted offsets.
Metadata path integrity
ANTsPy #931: replace only the terminal .npy suffix to keep JSON sidecars beside NumPy images; document legacy-path migration.
Session capability reporting
REA #5763: align session-discovery capabilities with supported target operations.
SBOM parser resilience
CycloneDX Core Java #957: recognize JSON/XML SBOMs with leading whitespace.
Security notification fidelity
Dependency-Track #7704: expose latest-version status in notification subjects.
Developer tooling
Meerkat #238: resolve bare-filename server entrypoints from the current directory for local source retrieval.
avenx-js #1680: align defer-loading documentation with compiled and fallback runtime behavior.
MCP hardening
ShipLean docs #18, #19, and #20: document configuration flags, MCP result envelopes, and attachment-transfer safeguards and fallbacks.

ARM64 biomedical imaging integrity

Merged contributions
Failure handling
Pillow #10271: handle zero-width images in ImageOps.cover() without division by zero.
ANTsPy #924: reject failed HTTP responses before caching test data.
pyplastimatch #15: propagate conversion and resampling failures to callers.
OME-Zarr #707: enforce download-path and existing-destination checks under optimized Python.
Imaging numerical safeguards and build diagnostics
ITK #6986: handle empty VectorContainer-to-NumPy conversions.
ITK #6991: reject transform parameter counts beyond the metric limit.
ITK #6987: restore warnings for handwritten wrapper code while retaining suppression for generated sources.
macOS architecture compatibility
ITK #6947: derive FFTW SIMD defaults from the requested macOS architecture.
dcm2niix #1043: support linking from source paths containing spaces.
Shell path safety
ITK-SNAP #280: preserve spaced application paths in the macOS launcher.
FastSurfer #950: quote FreeSurfer stub destinations during helper generation.
Buffering policy enforcement
fsspec #2359: honor zero buffering for immediate and deferred SFTP opens.
Data URL decoding integrity
fsspec #2386: recognize case and permitted whitespace in base64 markers.
Linux ARM64 integration testing
libjxl #5039: publish native Linux AArch64 static release tools.
libjxl #5040: document a GCC/Highway ARM64 build workaround.
Cover JPEG/JPEG 2000 plugins and pydicom integration in pylibjpeg-libjpeg #91 and pylibjpeg-openjpeg #129.
Test the latest-Dask configuration in OME-Zarr #704.
Extend coverage to zarrs #490, zarrs-python #199, connected-components-3d #153, fastremap #60, and FabIO #675.
Offline example verification
recusal #149: add subprocess smoke tests for documented offline examples.
recusal #150: index cookbook and framework examples with documentation-coverage regression tests.
Test suite reliability
ITK #7004: install xarray in macOS/Windows CI and mark its test skipped when the dependency is absent.
Nilearn #6664: stabilize plotting-test parameter order for parallel collection.
xarray #11780: skip the DataArray-to-Dask-DataFrame test when PyArrow is absent.
silx #4745: support Qt 6.12 drag-event constructors and older Qt versions.

Connect

I welcome collaboration on medical imaging security, radiomics infrastructure, defensive binary analysis, and native Apple Silicon applications.

Research profile · ORCID

Pinned Loading

  1. EntitlementDiff EntitlementDiff Public

    Read-only macOS entitlement comparison: inspect architecture-specific declarations, exact typed changes, and reproducible reports.

    Swift 1

  2. SidecarCompare SidecarCompare Public

    Native macOS MRI JSON-sidecar comparison with exact-decimal arithmetic, preserved source tokens, typed findings, and local-only exports.

    Swift 1

  3. dicom-anonymizer dicom-anonymizer Public

    Native macOS MR/CT/RTSTRUCT metadata pseudonymization with UID remapping, optional MRI JSON sidecars, staged audits, and interruption recovery.

    Python 1

Something went wrong, please refresh the page to try again.
If the problem persists, check the GitHub status page or contact support.

Uh oh!

There was an error while loading. Please reload this page.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.