Mis pensamientos sobre código, servidores y la tecnología detrás de cómo se construyen las cosas.
Facturando más de $48 mil al mes, el juego de simulador de vuelo de Pieter Levels impulsó una oleada de innovación. Sin un conocimiento detallado de la tecnología de motores de juegos 3D, él 'codificó por vibra' su juego usando IA. Los críticos de su trabajo señalaron problemas de seguridad y escalabilidad, mientras que los defensores elogiaron el asombroso resultado. ¿Qué podemos aprender de esto?
Cansado de ser constantemente empujado hacia "contenido más relevante", construí un script para liberarme de las aplicaciones de podcast comerciales o de código cerrado. Solo quería una herramienta que descargara discretamente mis programas favoritos, sin complicaciones, sin rastreo, sin extras. Lee esta publicación para obtener más información; es software libre/libre bajo GPLv3.
Como un pequeño proyecto paralelo, realizado entre mi trabajo normal, he estado trabajando en algo de interés personal: una aplicación nativa de seguimiento de entrenamiento para iOS. Quería hacer que mi reloj inteligente fuera obsoleto, usando en su lugar mi teléfono para registrar los entrenamientos. ¿Qué tan difícil podría ser recopilar datos detallados de los sensores usando las API nativas de Swift?
Actualmente, estoy contemplando un lago en el Monte Hood mientras escribo esto. Oigo pájaros en la distancia y veo el lago en calma, con olas sutiles y algo de niebla a lo lejos. Sin embargo, es falso, ya que estoy sentado en nuestro último piso, una habitación apenas amueblada y llena de artículos pertenecientes a una casa familiar con dos niños pequeños. Estoy usando las Vision Pro de Apple para explorar lo que puede ser la computación espacial. Estoy asombrado; permítanme explicarlo en esta entrada del blog.
La utilidad del iPad Pro ha generado mucho debate recientemente. Algunos usuarios argumentan que es una decepción, ya que no cumple con las expectativas establecidas por los portátiles tradicionales. Sin embargo, existen beneficios menos obvios del iPad que vale la pena considerar. Esta entrada de blog profundiza en estas ventajas y comparte perspectivas sobre la experiencia personal de usar un iPad Pro.
Como parte de mis esfuerzos de optimización de software para reducir los costos de la nube, necesitaba reemplazar una pieza de software de servidor ineficiente existente con algo que use herramientas más robustas (aunque fragmentadas) disponibles en Debian GNU/Linux. ¿Podría el modelo de lenguaje GPT4 ofrecerme algo de magia de IA? ¡Sigue leyendo!
Este mes estoy aprovechando las capacidades de la plataforma para lanzar un nuevo producto. A lo largo de los años he desarrollado la plataforma "Lemmid", un conjunto de bloques de construcción que me permiten desarrollar rápidamente nuevos productos. Diseñar una plataforma requiere algunas consideraciones adicionales, pero si sigues algunas reglas simples, ¡puedes hacerlo tú mismo!
Este mes recibí un envío de China que contiene un hardware especial, ¡dispositivos Android con impresoras integradas! Para facilitarles la vida a los dueños de restaurantes y negocios que usan mi aplicación de pedidos de comida, quiero que estos dispositivos impriman automáticamente los nuevos pedidos. Si tan solo pudiera hacer que estas máquinas funcionen con mi software... ¡reto aceptado!
Escribir en mi blog ha sido muy divertido, recibo mensajes de todo el mundo sobre las cosas que me gustan. El tráfico está creciendo, cada mes más lectores encuentran el camino a mi blog. Esta semana recibí una solicitud para admitir feeds RSS en mi blog. Me pregunté, ¿siguen siendo relevantes los feeds RSS hoy en día?
Como parte de la aplicación de pedidos de comida que estoy desarrollando, necesitaba diseñar una forma confiable de vincular la aplicación a sistemas externos. Estos sistemas externos están fuera de mi control directo e incluyen diferentes cajas registradoras, sistemas de gestión de cocina e impresoras de tickets. Sigue leyendo para obtener más información sobre cómo diseñar para lo desconocido y poco confiable.
Como parte de la aplicación de pedidos de comida online que estoy construyendo, necesitaba diseñar una infraestructura backend escalable que pudiera manejar una gran cantidad de usuarios concurrentes. La escalabilidad se considera un problema difícil de abordar. A menudo se presenta como algo mágico, realizado por compañías millonarias utilizando herramientas secretas. Pero, no existe la magia, ¿o sí?
Las páginas de pedidos online son más importantes que nunca. El virus COVID-19, los confinamientos resultantes y las normas de distanciamiento social han enfatizado la necesidad de una interfaz de usuario de tienda online bien diseñada. ¡Es sorprendentemente difícil hacerlo bien!
Los pagos online son ahora más importantes que nunca ya que los negocios se ven afectados por el virus COVID-19. Esto impulsa a mis clientes a buscar nuevas formas de ganar dinero online. Diseñé e implementé un sistema de (micro)pagos. Esta publicación trata sobre cómo lograr la simplicidad resolviendo desafíos complejos.
Esta semana volé a Gotemburgo para reunirme con gente de una gran compañía naviera internacional, para hablar sobre el desarrollo de software a nivel empresarial. Durante la reunión había varios expertos en la sala, uno de ellos me preguntó sobre la elección de la arquitectura de software correcta (para aplicaciones grandes, complejas, a nivel empresarial). Una muy buena pregunta, que bien merece una entrada de blog.
El mes pasado Apple lanzó iPadOS, el primer sistema operativo dedicado para iPad. Se diferencia de iOS con su compatibilidad con la pantalla más grande del iPad, incluyendo ventanas multi/pantalla dividida. Desarrollo apps y era hora de aprovechar estas nuevas posibilidades que ofrece iPadOS.
Cuando construyes sitios web, aplicaciones o servicios de correo electrónico, puedes encontrarte con nombres de dominio y sus configuraciones. Cuando todo funciona como debería, la mayor parte de esto es invisible. Pero al solucionar problemas de la configuración de un nombre de dominio, puede ser necesario profundizar un poco más... ¡sigue leyendo para aprender cómo!
Me pagan por hackear, con la condición de que explique cómo lo hice, para que se puedan prevenir futuros ataques. Como consultor de seguridad, busco vulnerabilidades en las aplicaciones, tiendas online y sitios web de mis clientes. Muy a menudo, un ataque comienza explotando una brecha de seguridad visible de forma remota. Sigue leyendo para aprender cómo los hackers encuentran las brechas de seguridad y qué puedes hacer para protegerlas.
Una forma de hacer que tu sitio web sea más rápido es hacerlo más pequeño. ¡No con fuentes diminutas, sino con menos bytes! Más de la mitad del peso de un sitio web promedio se debe a las imágenes. Sin embargo, muy pocas personas optimizan sus imágenes para la web y el rendimiento, ¡es hora de descubrir cuántos bytes puedes ahorrar!
Esta semana uno de mis clientes fue hackeado y me pidió asistencia de emergencia para ayudar a asegurar la infraestructura de su servidor. Era un servidor web que ejecutaba sitios web de WordPress en Apache (con PHP/MySQL), incluyendo algunas tiendas online con datos de clientes. Este hackeo podría haberse evitado fácilmente con las siguientes mejores prácticas, ¿está su servidor seguro?
Durante las últimas semanas he estado usando la Microsoft Surface Pro como mi computadora principal. Es una tableta moderna que se puede usar como laptop con la Type Cover. Con el Surface Pen, es una PC versátil que funciona de muchas maneras diferentes. Es hora de descubrir si es buena y cómo se compara con mi otra tableta, el iPad Pro.
Hace unos años, mi hermano tiró una cerveza sobre mi iPhone en un bar de Ámsterdam. Al pobre no le gustó la cerveza holandesa tanto como a mí: murió. Mientras esperaba a que llegara un nuevo teléfono, usé uno viejo que no podía hacer nada más que enviar mensajes de texto, llamar y... ¡Snake! Nació la idea de Snake '97 y este mes era el momento de actualizar el popularísimo juego.
En mi casa tengo esta conexión a internet de fibra óptica increíblemente rápida. Es una conexión de fibra de 600MB de subida y bajada que llega directamente a mi casa (sin cables de cobre). Es como una autopista de internet privada. Motivo suficiente para averiguar si podía hacer algo para aprovechar mejor toda esta fibra rápida...
Hoy llamé a mi proveedor para dar de baja la suscripción ADSL de internet de mi oficina, ya no la necesito. He apagado mi red de área local y he cambiado mi flujo de trabajo a internet móvil únicamente. La simplicidad y el ahorro realmente me sorprendieron tanto, que hice una entrada de blog sobre ello.
En los últimos años no he sido ajeno a los experimentos locos, pero esta vez quise llevarlo al extremo: programar en un Apple Watch. ¿Sería posible escribir código de verdad en un dispositivo tan pequeño? ¿Para qué molestarse? Este post es una defensa de los experimentos locos, ¡y por qué tú también deberías intentarlo!
Quería ver si podía encontrar algo mejor que mi anticuado lápiz y papel que uso para diseñar software como desarrollador profesional. Conocía el iPad Pro de mi prueba del verano pasado, en la que investigué si podría reemplazar mi máquina de desarrollo principal. Aunque puede que no sea capaz de reemplazar por completo mi fiel ThinkPad, resultó ser una historia totalmente diferente cuando se trata de papel.
La ausencia de desorden físico, marcas que distraigan o LEDs parpadeantes hace del iPad Pro un ejemplo de libro de diseño minimalista. Mi aversión a la distracción explica mi interés en usar el iPad Pro como único ordenador para probar si está a la altura de la tarea. ¿Es el último esfuerzo de Apple en iOS suficiente para permitir realizar un trabajo de desarrollo serio?
Hay que estar un poco loco para que se te ocurra la idea de construir un blog (es decir: programarlo de verdad) en un viejo portátil 486 con solo 16MB de RAM. Resulta que yo soy así de loco: cogí mi primerísimo portátil de los 90 y decidí averiguar si era posible convertirlo en una máquina de desarrollo.