View perrydv's full-sized avatar

    Highlights

    • Pro

    Block or report perrydv

    Block user

    Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

    You must be logged in to block users.

    Content in all repositories owned by your account will be closed.
    Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
    Report abuse

    Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

    Report abuse

    Popular repositories Loading

    1. nimble-TWS-workshop nimble-TWS-workshopPublic

      Content for NIMBLE workshop at TWS conference, Fall 2019.

      HTML 4 1

    2. splinemixmeta splinemixmetaPublic

      Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

      R 2 1

    3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

      HTML 1 1

    4. onTheSide onTheSidePublic

      Odds and ends of side work.

    5. TBB4CppAD TBB4CppADPublic

      Simplify use of CppAD objects with TBB multi-thread programming

      C++

    6. CppADtests CppADtestsPublic

      Code to explore CppAD pow issues.

      C++

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content
    View perrydv's full-sized avatar

      Highlights

      • Pro

      Block or report perrydv

      Block user

      Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

      You must be logged in to block users.

      Content in all repositories owned by your account will be closed.
      Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
      Report abuse

      Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

      Report abuse

      Popular repositories Loading

      1. nimble-TWS-workshop nimble-TWS-workshopPublic

        Content for NIMBLE workshop at TWS conference, Fall 2019.

        HTML 4 1

      2. splinemixmeta splinemixmetaPublic

        Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

        R 2 1

      3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

        HTML 1 1

      4. onTheSide onTheSidePublic

        Odds and ends of side work.

      5. TBB4CppAD TBB4CppADPublic

        Simplify use of CppAD objects with TBB multi-thread programming

        C++

      6. CppADtests CppADtestsPublic

        Code to explore CppAD pow issues.

        C++

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content
      View perrydv's full-sized avatar

        Highlights

        • Pro

        Block or report perrydv

        Block user

        Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

        You must be logged in to block users.

        Content in all repositories owned by your account will be closed.
        Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
        Report abuse

        Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

        Report abuse

        Popular repositories Loading

        1. nimble-TWS-workshop nimble-TWS-workshopPublic

          Content for NIMBLE workshop at TWS conference, Fall 2019.

          HTML 4 1

        2. splinemixmeta splinemixmetaPublic

          Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

          R 2 1

        3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

          HTML 1 1

        4. onTheSide onTheSidePublic

          Odds and ends of side work.

        5. TBB4CppAD TBB4CppADPublic

          Simplify use of CppAD objects with TBB multi-thread programming

          C++

        6. CppADtests CppADtestsPublic

          Code to explore CppAD pow issues.

          C++

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content
        View perrydv's full-sized avatar

          Highlights

          • Pro

          Block or report perrydv

          Block user

          Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

          You must be logged in to block users.

          Content in all repositories owned by your account will be closed.
          Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
          Report abuse

          Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

          Report abuse

          Popular repositories Loading

          1. nimble-TWS-workshop nimble-TWS-workshopPublic

            Content for NIMBLE workshop at TWS conference, Fall 2019.

            HTML 4 1

          2. splinemixmeta splinemixmetaPublic

            Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

            R 2 1

          3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

            HTML 1 1

          4. onTheSide onTheSidePublic

            Odds and ends of side work.

          5. TBB4CppAD TBB4CppADPublic

            Simplify use of CppAD objects with TBB multi-thread programming

            C++

          6. CppADtests CppADtestsPublic

            Code to explore CppAD pow issues.

            C++

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content
          View perrydv's full-sized avatar

            Highlights

            • Pro

            Block or report perrydv

            Block user

            Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

            You must be logged in to block users.

            Content in all repositories owned by your account will be closed.
            Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
            Report abuse

            Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

            Report abuse

            Popular repositories Loading

            1. nimble-TWS-workshop nimble-TWS-workshopPublic

              Content for NIMBLE workshop at TWS conference, Fall 2019.

              HTML 4 1

            2. splinemixmeta splinemixmetaPublic

              Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

              R 2 1

            3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

              HTML 1 1

            4. onTheSide onTheSidePublic

              Odds and ends of side work.

            5. TBB4CppAD TBB4CppADPublic

              Simplify use of CppAD objects with TBB multi-thread programming

              C++

            6. CppADtests CppADtestsPublic

              Code to explore CppAD pow issues.

              C++

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content
            View perrydv's full-sized avatar

              Highlights

              • Pro

              Block or report perrydv

              Block user

              Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

              You must be logged in to block users.

              Content in all repositories owned by your account will be closed.
              Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
              Report abuse

              Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

              Report abuse

              Popular repositories Loading

              1. nimble-TWS-workshop nimble-TWS-workshopPublic

                Content for NIMBLE workshop at TWS conference, Fall 2019.

                HTML 4 1

              2. splinemixmeta splinemixmetaPublic

                Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

                R 2 1

              3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

                HTML 1 1

              4. onTheSide onTheSidePublic

                Odds and ends of side work.

              5. TBB4CppAD TBB4CppADPublic

                Simplify use of CppAD objects with TBB multi-thread programming

                C++

              6. CppADtests CppADtestsPublic

                Code to explore CppAD pow issues.

                C++

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content
              View perrydv's full-sized avatar

                Highlights

                • Pro

                Block or report perrydv

                Block user

                Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

                You must be logged in to block users.

                Content in all repositories owned by your account will be closed.
                Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
                Report abuse

                Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

                Report abuse

                Popular repositories Loading

                1. nimble-TWS-workshop nimble-TWS-workshopPublic

                  Content for NIMBLE workshop at TWS conference, Fall 2019.

                  HTML 4 1

                2. splinemixmeta splinemixmetaPublic

                  Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

                  R 2 1

                3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

                  HTML 1 1

                4. onTheSide onTheSidePublic

                  Odds and ends of side work.

                5. TBB4CppAD TBB4CppADPublic

                  Simplify use of CppAD objects with TBB multi-thread programming

                  C++

                6. CppADtests CppADtestsPublic

                  Code to explore CppAD pow issues.

                  C++

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content
                View perrydv's full-sized avatar

                  Highlights

                  • Pro

                  Block or report perrydv

                  Block user

                  Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

                  You must be logged in to block users.

                  Content in all repositories owned by your account will be closed.
                  Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
                  Report abuse

                  Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

                  Report abuse

                  Popular repositories Loading

                  1. nimble-TWS-workshop nimble-TWS-workshopPublic

                    Content for NIMBLE workshop at TWS conference, Fall 2019.

                    HTML 4 1

                  2. splinemixmeta splinemixmetaPublic

                    Non-parametric meta-regression using splines from mgcv with mixed-effects meta-analysis from mixmeta

                    R 2 1

                  3. Vogelwarte_NIMBLE_workshop Vogelwarte_NIMBLE_workshopPublic

                    HTML 1 1

                  4. onTheSide onTheSidePublic

                    Odds and ends of side work.

                  5. TBB4CppAD TBB4CppADPublic

                    Simplify use of CppAD objects with TBB multi-thread programming

                    C++

                  6. CppADtests CppADtestsPublic

                    Code to explore CppAD pow issues.

                    C++