Vermutech #56
Aquesta setmana he incorporat als meus gadgets el Pixel Watch 3 amb LTE, això vol dir que pot connectar-se a la xarxa mòbil sense necessitat de telèfon. Per fer-ho cal configurar una eSIM (com una SIM física, però virtual). Des de fa un temps, Pepephone, que és el meu operador, ofereix l’opció de MultiSIM, que permet duplicar una línia i tenir-la activa en un altre dispositiu.
Fins aquí tot bé, però per configurar l’eSIM al rellotge cal fer servir l’app específica de Google Pixel Watch. I aquí comencen els problemes: l’app em deia que el meu operador no era compatible (tot i que ja havia fet l’alta i tenia el QR preparat). L’atenció al client de Pepephone no en tenia ni idea... i qui m’ho va resoldre? El ChatGPT amb cerca profunda. En 15 minuts em va dir que havia llegit en fòrums que alguns usuaris havien de connectar-se a una altra xarxa perquè sortís l’opció. Dit i fet: un company de feina em va deixar una SIM de Movistar i... màgia. Ja apareixia l’opció per configurar l’eSIM.
Començo amb algunes recomanacions,
💾 Programari
Landrun: Llança processos en una gàbia de forma nativa, utilitzant funcionalitats pròpies del nucli de Linux. Ideal per provar codi o executar comandes amb restriccions de seguretat sense necessitat de contenidors complets.
🤔 Curiositats
TV Garden: Explora canals de televisió locals d’arreu del món de forma gratuïta i en directe. Un viatge digital entre països només canviant de canal.
📦 Recursos
Cloudflare ha obert OpenPubkey SSH, un sistema que permet fer autenticació via Single Sign-On per a connexions SSH. Si ho acabem provant a la feina, ja explicaré l’experiència!
🌟 El concepte
Quan es fa una petició des d’una web cap a un servidor que és en un domini diferent, el navegador no confia automàticament en aquesta connexió. De fet, la bloqueja si no hi ha un permís explícit. Aquesta protecció es coneix com a Cross-Origin Resource Sharing, tot i que el nom realment importa poc: el que cal entendre és què fa i per què hi és.
La idea neix com una extensió de la política del mateix origen (same-origin policy), una norma de seguretat que només permetia compartir dades dins d’un mateix domini. Però com que cada vegada és més habitual separar el frontend i el backend en dominis diferents, calia una manera segura d’obrir aquest canal de comunicació.
Aquest mecanisme serveix per evitar que una web pugui fer peticions a un altre lloc i llegir-ne la resposta si no ha estat autoritzada. Per exemple, si tens una sessió oberta en una web i alhora entres en una altra que intenta fer crides a aquell servidor aprofitant les teves cookies, aquesta protecció t’evita un bon desastre. Però també complica molt la vida quan ets tu qui està desenvolupant i vols accedir a una API des de localhost.
El funcionament és simple: el navegador fa la petició, però només permet accedir a la resposta si el servidor ha inclòs les capçaleres adequades. La més coneguda és:
Access-Control-Allow-Origin: https://exemple.comPerò n’hi ha d’altres que poden aparèixer segons el context:
Access-Control-Allow-Methods: indica quins mètodes HTTP (GET, POST, PUT, DELETE...) estan permesos
Access-Control-Allow-Headers: llista de capçaleres personalitzades que es poden enviar
Access-Control-Allow-Credentials: permet enviar cookies o tokens si està en true
Access-Control-Expose-Headers: especifica quines capçaleres es poden llegir des del client
Si la petició inclou autenticació, mètodes diferents de GET/POST o capçaleres personalitzades, el navegador envia una petició prèvia OPTIONS, coneguda com a preflight, per assegurar-se que tot està autoritzat abans d’enviar la crida real.
Un petit truc: per evitar aquestes peticions prèvies durant el desenvolupament, una opció habitual és configurar un proxy local. Per exemple, si el backend és a http://localhost:5000, es pot muntar un proxy que redirigeixi totes les crides a /api des del frontend, de manera que la petició sembli del mateix origen.
La part curiosa és que aquest bloqueig només existeix dins el navegador. Si fas la mateixa petició des de Postman, curl o des del backend, tot funciona. I això sovint confon, perquè el problema no és ni del codi ni del servidor... és d’aquesta protecció extra que s’activa només quan hi ha una interfície gràfica pel mig.
💖 Feedback
Si t’ha agradat i em vols ajudar, fes arribar aquest contingut a qui creguis que li pot interessar, i entra al canal de Telegram per comentar la publicació.

