pokemyiout's comments

pokemyiout | 2 months ago | on: Show HN: Vibe coding a bookshelf with Claude Code

I like the scroll animation!

I've actually been working on something similar since I also had this pain (plus I'm too cheap to buy all the books I'm reading)

To solve the issue related to having take the photos myself, I scrape from places like eBay to get the accurate spine images. Obviously this isn't 100% accurate, but like you I also decided 90% accuracy is good enough.

https://www.tinyshelf.me/maler/fav

pokemyiout | 7 months ago | on: On doing hard things

Shoe Dog is a great book. That book + "What I Talk About When I Talk About Running" by Murakami also had a similar effect on me.

pokemyiout | 7 months ago | on: To be a better programmer, write little proofs in your head

Is there a typo in the induction section? Should `simplifyTree` and `simplifyGraph` be the same function?

function simplifyTree(root: Node): Node {

  let newChildren = [] as Array<Node>;

  for (const child of root.children) {
    const simplifiedChild = simplifyGraph(child);
  
    if (shouldContract(simplifiedChild)) {
      for (const grandChild of simplifiedChild.children) {
        newChildren.push(grandChild);    
      }
    } else {
      newChildren.push(simplifiedChild);
    }
  }

  root.children = newChildren;

  return root;
}

pokemyiout | 8 months ago | on: Show HN: PyDoll – Async Python scraping engine with native CAPTCHA bypass

I was also interested in this and couldn't find more information in the docs, even in the deep dive [1].

However, I did find this for their CF Turnstile bypass [2]:

    async def _bypass_cloudflare(
        self,
        event: dict,
        custom_selector: Optional[tuple[By, str]] = None,
        time_before_click: int = 2,
        time_to_wait_captcha: int = 5,
    ):
        """Attempt to bypass Cloudflare Turnstile captcha when detected."""
        try:
            selector = custom_selector or (By.CLASS_NAME, 'cf-turnstile')
            element = await self.find_or_wait_element(
                *selector, timeout=time_to_wait_captcha, raise_exc=False
            )
            element = cast(WebElement, element)
            if element:
                # adjust the external div size to shadow root width (usually 300px)
                await self.execute_script('argument.style="width: 300px"', element)
                await asyncio.sleep(time_before_click)
                await element.click()
        except Exception as exc:
            logger.error(f'Error in cloudflare bypass: {exc}')

[1] https://autoscrape-labs.github.io/pydoll/deep-dive/

[2] https://github.com/autoscrape-labs/pydoll/blob/5fd638d68dd66...

page 1