I highly recommend reading the singlefile source or https://archiveweb.page/ to see how they handle closed shadow DOMs, cross-origin iframes, websockets, media urls, deduping large assets, etc.
Docker is designed to be undetectable by default, the best way I have found is to set env IN_DOCKER=True manually in your Dockerfile + check that there is no $DISPLAY configured + that you're on linux. Usually if all/most of those are true you can safely add --no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage etc. all the docker-specific flags. Thats what we do in https://github.com/ArchiveBox/ArchiveBox/blob/dev/Dockerfile...
https://github.com/archiveteam/grab-site or browsertrix may be easier to use for some, it's what was used to save a lot of the data.gov stuff before it got taken down.
Very curious if they're implementing browser driving themselves or using an off-the-shelf library like stagehand, browser-use, etc. to drive the DOM. Hopefully they open source it if it's in Swift.
A11y-tree alone is not enough for many sites because lots of auth stuff happens in OOPIF frames that need special handling/stitching/interactive element filtering.
There's also the issues of many captchas around auth stuff being implemented using canvas elements (that are hard to instrument for browser agents without relying on CUA). Can their on-device 3B model really handle accurate CUA driving? I guess we'll see...
Sending 5 marketing emails with no unsubscribe link is not "operating in good faith", that's a blatant CAN-SPAM violation and could be used in a textbook explaining UX dark patterns.
I don't care what country they are from if after 15 years they cant figure out how to make a camera that doesn't reset its clock every time you recharge it.
Good riddance, GoPro squandered their market lead for many years and shipped bafflingly mediocre software that seemed to add more bugs with every generation.
I hope Insta360, DJI, and many more competitors spring up out of their ashes. Assuming fast microsd cards for writes, how much DDR RAM do they really need to buffer videos during recording? 4gb? 8gb?
Historically tracking "which tab is in the foreground" has been impossible via CDP.
Libraries like Playwright and even Google's own puppeteer resorted to hacks like forcing users to foreground pages manually, or pretending "last opened == foreground".
After writing brittle state sync logic and workarounds for the last 2 years I got tired of dealing around this issue, so I contributed a fix upstream into Chromium!
But I've struggled with the IO parts, it seems every system is so different, it's hard to live without LLVM-IR as the middle layer abstracting away compiler and target differences.
Oh nice, I just implemented something like this for installing from any package manager uv-style https://abxpkg.archivebox.io/, but I haven't added a "search" command yet, I should add that!
I've been excitedly following the development of Plain for a while now, it's so cool to see so many of the rough edges in Django get fixed in a nice comprehensive solution.
Great job Dave Gaeddert!
I'm saddened to see some of the other comments saying it's slop, he was working on this long before vibecoding became common! I think there's a lot of really good design decisions and I hope people don't write it off just because he's trying the "for agents" marketing approach lately.
Yes but anodization implies thickness around ~5–25 micrometers (µm) for aluminum. The natural oxide coating is ~2-5 nanometers (1,000–5,000× less thick).
We can definitely make harder evals, the problem is a good eval set is indistinguishable from good training data / market edge, so no one is incentivized to share their best eval sets publicly.