Gun Talk

Telling Joe Rogan The Truth About Gun Deaths In America

Reading Time: 3:25 min

Joe Rogan invited me back on his podcast to have a long-form conversation about guns in America in 2022. In this segment, we talk about how thin the line can…

View post

My Top 5 Concealed Carry Gun Rotation

Reading Time: 4:45 min

When it comes to my concealed carry guns I practice tactical polyamory. Essentially, I don’t just carry one gun, I have a rotation of guns I carry based on what…

View post

Defensive Shooting Fundamentals Training w/ Brantley Gilbert, Guns Out TV, & USCCA Ep 1 of 4

Reading Time: 0:37 min

Even though I love the concealed carry insurance program with USCCA membership, I also love the wealth of information and their training. I decided to take one of USCCA’s introductory…

View post

First Road Trip In My GT3 To Pickup & Shoot My First 2011 Handgun At Their Factory

Reading Time: 0:41 min

I know enough gun owners to know that 90% of gun owners are walking around with an undiagnosed mental illness that I like to call Tactical Instant Gratificationitis. Tactical Instant…

View post

LA Times Op-Ed: Why Men Feel The Need to Carry Guns

Reading Time: 1:37 min

In an LA Times Op-Ed titled, “Why Men Feel The Need To Carry Guns”, the Author dives into what she believes is the reason why men feel the need to…

View post

Never Forget Where You Come From

Reading Time: 0:45 min

My phone chimes indicating I just received a text message: “Would you disown me if I put a Nikon Optic on my AR?” I’m sitting in the middle of my…

View post
<script>
  /*Source: https://github.com/Krzysztof-Antosik/Two-direction-Sticky-Sidebar*/
  
  // Verificar el ancho de pantalla al cargar y redimensionar
  function checkScreenWidth() {
    if (window.innerWidth <= 767) {
      // Si la pantalla es menor o igual a 676px, no ejecutar el código
      return;
    }

    const stickyElement = document.querySelector('.fb-sidebar__aside');
    const startPosition = stickyElement.getBoundingClientRect().top;

    let endScroll = window.innerHeight - stickyElement.offsetHeight - 500;
    let currPos = window.scrollY;
    let screenHeight = window.innerHeight;
    let stickyElementHeight = stickyElement.offsetHeight;
    let topGap = 40;
    let bottomGap = 40;

    setTimeout(() => {
      if (stickyElement.hasAttribute('data-top-gap')) {
        const dataTopGap = stickyElement.getAttribute('data-top-gap');
        topGap = dataTopGap === 'auto' ? startPosition : parseInt(dataTopGap);
      }

      if (stickyElement.hasAttribute('data-bottom-gap')) {
        bottomGap = parseInt(stickyElement.getAttribute('data-bottom-gap'));
      }
    }, 100);

    stickyElement.style.position = 'sticky';
    stickyElement.style.top = `${topGap}px`;
    stickyElement.style.height = 'fit-content';

    function positionStickySidebar() {
      endScroll = window.innerHeight - stickyElement.offsetHeight - bottomGap;
      const stickyElementTop = parseInt(stickyElement.style.top.replace('px', ''));

      if (stickyElementHeight + topGap + bottomGap > screenHeight) {
        if (window.scrollY < currPos) {
          if (stickyElementTop < topGap) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop >= topGap && stickyElementTop !== topGap) {
            stickyElement.style.top = `${topGap}px`;
          }
        } else {
          if (stickyElementTop > endScroll) {
            stickyElement.style.top = `${stickyElementTop + currPos - window.scrollY}px`;
          } else if (stickyElementTop < endScroll && stickyElementTop !== endScroll) {
            stickyElement.style.top = `${endScroll}px`;
          }
        }
      } else {
        stickyElement.style.top = `${topGap}px`;
      }
      currPos = window.scrollY;
    }

    function stickyElementToMe() {
      stickyElement.style.top = `${topGap}px`;
    }

    function updateSticky() {
      screenHeight = window.innerHeight;
      stickyElementHeight = stickyElement.offsetHeight;
      positionStickySidebar();
    }

    setTimeout(() => {
      window.addEventListener('resize', () => {
        currPos = window.scrollY;
        updateSticky();
      });

      document.addEventListener('scroll', updateSticky, {
        capture: true,
        passive: true
      });
    }, 1000);
  }

  // Verificar el ancho de pantalla al cargar y redimensionar
  window.addEventListener('load', checkScreenWidth);
  window.addEventListener('resize', checkScreenWidth);
</script>