Imagen de unsplash.com

Crear una VPN en una Raspberry Pi usando WireGuard y Docker

Usar una VPN es clave para la privacidad y la seguridad. Además, si como en este caso es self-hosted en nuestra LAN tenemos la posibilidad de acceder a recursos locales desde redes externas por ejemplo 4g/5g Casos de uso prácticos: Navegar desde el celular a través de nuestra propia red de manera segura (opcional enviar el tráfico a través de pi-hole para bloquear la publicidad y el trackeo de datos incluso en redes moviles) Acceder a recursos locales desde el exterior, por ejemplo acceder a la raspberry pi por ssh desde una red externa sin que la raspi esté expuesta a tráfico externo Poder seguir viendo contenido local en plataformas de streaming mientras estamos de viaje Existen varios servicios que ofrecen VPNs a cambio de un par de dólares al mes, las contras que tenemos usando estos servicios son:...

January 21, 2024 · 3 min
Imagen de rawpixel.com en Freepik

Desarrollando una app de seguimiento de agua personal sin experiencia en Swift, utilizando ChatGPT

Existen cientos de apps para tracking de cuanta agua tomamos al día. Pero el 99,9% de las apps tiene al menos 1 de los siguientes problemas: Requiere registro/loggin Necesita conexión a internet Tienen ads UI compleja Tracking intrusivo (para mas ads) No tiene soporte para Apple Watch Por lo que opte por crear mi propia app intentando no caer en ninguno del los problemas anteriores. Hice algunos wireframes a mano con la idea que tenia en la cabeza....

October 7, 2023 · 2 min

Cómo forzar un request HTTP/1 en Go

HTTP/2 es una versión más moderna y eficiente de HTTP que tiene algunas diferencias importantes con respecto a HTTP/1. En HTTP/2, todos los headers son transmitidos en formato binario y se espera que sean en minúscula. Esto significa que si envía un encabezado con mayúsculas, es posible que no sean reconocidos por el servidor y, por lo tanto, no se procesen correctamente. Por ejemplo, si mandamos un header como POWERED_BY sin avisar y sin mostrar ningun tipo de log o warning el cliente de HTTP/2 va a modificar y enviar el header como powered_by Causando que el servicio que esta esperando el header todo en mayusculas, lo reciba todo en minusculas, eso haria que no encuentre el header y por lo tanto entienda que el header no fue enviado, ejecundo un flujo totalmente distinto....

November 20, 2020 · 3 min
go lang

Como saber si dos strings son permutaciones con Go

Que es una permutacion Para saber si dos strings son permutaciones, primero tenemos que saber que es una permutacion, son aquellas palabras que contienen exactamente los mismos caracteres, pero esta ordenados de una manera distinta, por ejemplo, una permutacion de AUTO podría ser ATOU, otra podría ser OAUT, etc Sabiendo esto podemos empezar a escribir el programa en Go que nos diga si dos strings son permutaciones o no. Hay varias formas de hacerlo, algunas mas optimas que otras...

November 20, 2020 · 3 min
go lang

Goroutines y channels en Go

Que es una goroutine? Una goroutine es como un hilo, pero manejado por Go. Es mas liviano que un hilo tradicional y al estar completamente integrado al lenguaje, es mas sencillo de implementar. Que beneficios tienen? Las principales ventajas que tienen estas goroutines es que están muy bien optimizadas en la gestión de recursos, por lo tanto es posible tener cientos o hasta miles de goroutines a un costo mucho menor que si fueran hilos tradicionales....

November 20, 2020 · 4 min