I'm very excited to share a guest post I wrote for the Hugging Face 🤗 blog! The post is called 👉 Experimenting with the proposed Cross-Origin Storage API in Transformers.js 👈! This proposed new browser API, navigator.crossOriginStorage.requestFileHandle(hash) , has the potential of revolutionizing the Web, a little bit at least. Learn more by reading the Explainer for the Cross-Origin Storage…
Like most millennials, I grew up with Napster , then Kazaa , then eDonkey2000 , obviously CD rips , and of course LAN parties . Over the years, this has led to a large collection of completely legal MP3 files that I have backed up on two large external USB spinning disks that haven't spun for a long time now, but the files also exist on Google Drive. I'm also heavily invested in the Home Assistant…
In Safari 17.4, the WebKit team at Apple shipped a native HTML switch element . The core idea is that an <input type="checkbox"> can progressively be enhanced to become a switch by adding the switch attribute. Browsers that don't support the switch attribute will just silently ignore it and render the switch as a regular checkbox. At the time of this writing, Safari version 17.4 and later is the…
I recently spoke at JSConf Mexico , where I spent a lot of time with the Interledger Foundation folks in the hallway track and at the after party events, namely with Ioana (Engineering Manager) and Marian (DevRel) to talk about Web Monetization . Web Monetization gives publishers more revenue options and audiences more ways to sustain the content they love. Support can take many forms: from a…
Like many developers, I was bummed when I learned about the shutdown of Glitch . While GitHub Pages works great for web apps that don't need a server, I struggled with finding a drop-in replacement for hosting server-based apps, and specifically apps using Node.js. Until I found out about Hugging Face Spaces and that it supports Docker, which allowed me to create an evergreen template for running…
I was playing with stress-testing the multimodal capabilities of the Prompt API and thought a nice test case might be to have the model read the current time painted on a <canvas> . As with my last Prompt API exploration , I'm again using a response constraint, the HH:mm:ss regular expression /^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/ . The prompt is "Read the time that you can see in this…
When I moved in with my wife Laura in 2005, we lived in a shared apartment in Barcelona that had an ancient washing machine that was just there already, no idea who initially bought it. I managed to break the washing machine door's closing mechanism some time in 2006, so for a few weeks, whenever we did the washing, we had to lean a chair against the door so it wouldn't open. At the time, we were…
The other day, I was hit by a baffling TypeError: console.log(...) is not a function . Like, WTF 🤔? Turns out, I was sloppily adding a quick console.log('here') statement for debugging purposes (as one does 🙈), which happened to be right before an IIFE . I didn't put a ; , as it was a throwaway statement I'd remove after finding the bug, but turns out that's the issue. StackOverflow contributor…
Remember the Cross-Origin-Embedder-Policy ( COEP ) and the Cross-Origin-Opener-Policy ( COOP ) headers for making your site cross-origin isolated ? If not, here's my colleague Eiji Kitamura 's article Making your website "cross-origin isolated" using COOP and COEP . To be effective, they need to be sent as in the example below. cross-origin-embedder-policy: credentialless…
Recently, in a blog post titled Running inference in web extensions , Mozilla announced a pretty interesting experiment on their blog: We've recently shipped a new component inside of Firefox that leverages Transformers.js […] and the underlying ONNX runtime engine . This component lets you run any machine learning model that is compatible with Transformers.js in the browser, with no server-side…