Category: Desarrollo

¡Hola, Mundo!: Minimizado a 167 bytes

2025-01-02
¡Hola, Mundo!: Minimizado a 167 bytes

Este artículo documenta el viaje del autor para crear el programa 'Hola, Mundo!' más pequeño posible. Inicialmente usando Rust, el autor descubrió que minimizar el tamaño del binario requería una inmersión profunda en la programación de bajo nivel. Finalmente, se eligió el lenguaje de ensamblaje, y mediante técnicas inteligentes, como la eliminación de símbolos de depuración y la creación manual del encabezado ELF, un programa 'Hola, Mundo!' de 64 bits para Linux se redujo a unos impresionantes 167 bytes. El artículo profundiza en la expansión del tamaño del archivo durante el proceso de enlace y los detalles del formato de archivo ELF, lo que lo convierte en un recurso altamente valioso para los desarrolladores de sistemas de bajo nivel.

Desarrollo

Reglas para Escribir Tutoriales de Software Impresionantes

2025-01-02
Reglas para Escribir Tutoriales de Software Impresionantes

Esta entrada de blog describe reglas para crear tutoriales de software excepcionales. Destaca la importancia de evitar la jerga, declarar los objetivos con claridad, proporcionar fragmentos de código copiables y pegables, mantener un estado de código funcional y minimizar las dependencias. El autor utiliza ejemplos contrastantes para ilustrar las diferencias entre tutoriales buenos y malos, ofreciendo mejoras prácticas, como el uso de indicadores de línea de comandos largos, la separación de los valores definidos por el usuario de la lógica reutilizable y el uso de títulos coherentes y descriptivos. El objetivo final es crear tutoriales fáciles de entender y seguir, amigables para principiantes.

Notion: Tu espacio de trabajo todo en uno

2025-01-02
Notion: Tu espacio de trabajo todo en uno

Notion es un espacio de trabajo todo en uno que combina notas, gestión de tareas, wikis y bases de datos en una sola plataforma. Conocido por su flexibilidad y capacidad de personalización, Notion permite a los usuarios crear flujos de trabajo y bases de conocimiento personalizados. Ya seas estudiante, autónomo o miembro de un equipo, Notion te ayuda a organizar la información y aumentar la productividad. Sus potentes funciones de base de datos te permiten gestionar desde simples listas de tareas hasta complejas gestiones de proyectos.

Desarrollo

Prueba de 7 días: Calendario de IA personalizado con integración de ChatGPT

2025-01-02

Un calendario de IA personalizado con integración de ChatGPT busca 20 probadores para una prueba de 7 días (mínimo 3 días). Esta herramienta ayuda a planificar tareas con anticipación, proporcionando respuestas personalizadas impulsadas por IA el día programado para impulsar la creatividad y superar obstáculos. Los usuarios pueden refinar las respuestas de IA a través de una función 'Iniciar chat'. La prueba tiene límites de chat (10 mensajes/sesión, 100 palabras/mensaje). Marque el enlace; la invitación de Discord es de un solo uso. Se agradece la retroalimentación sobre las funciones y la IU. Se aceptan correos electrónicos falsos.

Desarrollo Calendario de IA

Internos de cambio de contexto de Linux: estado del proceso y memoria

2025-01-02
Internos de cambio de contexto de Linux: estado del proceso y memoria

Este artículo profundiza en la representación de procesos y sus estados por parte del kernel de Linux, centrándose en las estructuras de datos clave: task_struct y mm_struct. task_struct gestiona el estado de ejecución, incluyendo el estado del proceso, el seguimiento del tiempo de la CPU y la información de programación. mm_struct maneja el estado de la memoria, abarcando tablas de páginas, límites de segmentos de memoria y detalles específicos de la arquitectura. El artículo explica detalladamente los campos dentro de estas estructuras y sus roles en el cambio de contexto, ofreciendo una comprensión profunda del funcionamiento interno del kernel de Linux.

Connet: Un proxy inverso P2P con recorrido NAT

2025-01-02
Connet: Un proxy inverso P2P con recorrido NAT

Connet es un proxy inverso peer-to-peer para el recorrido NAT, inspirado en ngrok, frp y rathole. Permite exponer servicios locales a otros dispositivos en internet sin necesidad de una dirección IP pública. A diferencia de sus predecesores, los clientes Connet se ejecutan tanto en el proveedor de servicios (destino) como en el solicitante de servicios (origen), garantizando una comunicación privada y eficiente. Actualmente en fase alfa, Connet admite conexiones directas y de servidor de retransmisión, cifrando toda la comunicación con TLS.

¡Picos de latencia Wifi misteriosos resueltos: Era Qt5!

2025-01-02

Durante ocho meses, el autor luchó contra picos intermitentes de latencia Wifi de 2000 ms o más, lo que dificultaba los juegos y las videollamadas. Adaptadores de red nuevos, reinstalaciones del SO: nada funcionó. ¿El culpable? MediBang Paint Pro, que usa Qt5 (<5.14). Su QNetworkAccessManager verifica constantemente los cambios en la interfaz Wifi, causando una latencia masiva. ¿La solución? Establecer la variable de entorno QT_BEARER_POLL_TIMEOUT en -1.

Desarrollo Latencia de Red

Postgres 18 incluirá soporte para UUIDv7: Adiós a los dolores de cabeza con la ordenación de IDs en las pruebas

2025-01-02

PostgreSQL incluirá soporte para UUIDv7 en la versión 18. Este método mejorado de generación de UUID mantiene los beneficios de aleatoriedad de UUIDv4, garantizando IDs que aumentan monótonamente dentro de un único backend de Postgres. Esto se logra incorporando una marca de tiempo y un contador de 12 bits sub-milisegundos. Las pruebas se simplifican, ya que los datos de prueba se ordenan automáticamente, eliminando la necesidad de ordenar manualmente y mejorando la eficiencia y confiabilidad de las pruebas. Si bien la monotonicidad no está garantizada entre backends, es suficiente para la mayoría de los escenarios de prueba. Esta mejora está prevista para su lanzamiento a finales de 2025 con PostgreSQL 18.

Desarrollo

HtmlSlice: Fragmentos HTML Reutilizables para Ruby

2025-01-02
HtmlSlice: Fragmentos HTML Reutilizables para Ruby

HtmlSlice es una gema Ruby que permite a las clases Ruby generar dinámicamente fragmentos HTML reutilizables. Aborda las limitaciones de los generadores HTML existentes, como los problemas de ámbito de instancia de Markaby. HtmlSlice admite una amplia gama de etiquetas HTML, incluidas las etiquetas vacías, y escapa de forma segura el contenido HTML para evitar vulnerabilidades XSS. Es ligero y fácil de usar, adecuado para generar HTML de aplicaciones completas o solo partes HTML. También se muestra la integración con Rails.

Desarrollo gema

Herramienta de compilación Mill JVM: JAR de ensamblaje directamente ejecutables

2025-01-02

La herramienta de compilación Mill JVM crea JAR de ensamblaje que son directamente ejecutables, eliminando la necesidad del comando `java -jar`. Esto se logra añadiendo un script shell al principio del archivo JAR, que luego invoca el entorno de ejecución de Java. Este script está ingeniosamente diseñado para ser compatible con sistemas Unix y Windows, permitiendo la ejecutabilidad multiplataforma. El artículo detalla cómo funciona esto, aprovechando la naturaleza de los archivos ZIP para concatenar un script de inicio con el contenido del JAR para una ejecución sin problemas. Esto mejora significativamente la integración de los programas Java en los flujos de trabajo de línea de comandos.

FineCodeX: Una aplicación que requiere JavaScript

2025-01-02

FineCodeX es una aplicación que necesita tener JavaScript habilitado para funcionar correctamente. Esto significa que si JavaScript está deshabilitado en tu navegador o tu dispositivo no lo admite, no podrás usar FineCodeX. Asegúrate de que JavaScript esté habilitado en tu navegador para una experiencia óptima.

Desarrollo

Trazado de rayos en un fin de semana: De cero a imágenes impresionantes

2025-01-02

Este tutorial te enseña cómo escribir un trazador de rayos en un fin de semana usando C++. Comenzando con la salida de imágenes PPM básicas, introduce progresivamente conceptos como rayos, cámaras, esferas y materiales, culminando en un renderizador capaz de producir imágenes con anti-aliasing, materiales difusos y metálicos. El tutorial abarca matemáticas vectoriales, intersección rayo-esfera, cálculos de normales de superficie, abstracción de materiales y profundidad de campo, proporcionando ejemplos de código claros y renderizados bonitos. Incluso sin experiencia previa en programación, puedes seguir adelante y construir tu propio trazador de rayos.

Emulando la instrucción FMAdd: Una inmersión profunda en flotantes de 32 bits

2025-01-02

Esta publicación profundiza en la emulación de la instrucción FMAdd (fused multiply-add) en hardware que carece de soporte nativo, centrándose específicamente en una implementación SIMD de punto flotante de 32 bits. Explica el funcionamiento de FMAdd y cómo evitar los errores de redondeo doble inherentes a los cálculos de punto flotante intermedios. El autor detalla una técnica inteligente que utiliza el 'redondeo al impar' y la precisión extra de los flotantes de doble precisión para eliminar los errores de redondeo, logrando resultados precisos de FMAdd. La publicación también cubre brevemente el cálculo de resultados de suma precisos y términos de error, prometiendo un seguimiento sobre el manejo de flotantes de 64 bits.

Marco de Carrera de Ingeniería de Dropbox: Una Inmersión Profunda

2025-01-02

Dropbox ha presentado su Marco de Carrera de Ingeniería, una guía diseñada no como una lista de verificación de promoción, sino como una herramienta para ayudar a los ingenieros a comprender las responsabilidades y el impacto en cada nivel (por ejemplo, Ingeniero de Software IC1 a IC7). Define las responsabilidades principales y las habilidades técnicas, enfatizando el impacto en los negocios como la métrica principal. Cada nivel describe los comportamientos esperados en los pilares Resultados, Dirección, Talento y Cultura. Los ingenieros trabajan con sus gerentes para establecer objetivos trimestrales, utilizando el marco para orientar su desarrollo y crear un impacto duradero.

mitmproxy2swagger: Ingeniería inversa automática de APIs REST

2025-01-02
mitmproxy2swagger: Ingeniería inversa automática de APIs REST

mitmproxy2swagger es una herramienta potente que convierte automáticamente el tráfico capturado por mitmproxy en especificaciones OpenAPI 3.0. Esto te permite realizar ingeniería inversa automática de APIs REST simplemente ejecutando tus aplicaciones y capturando el tráfico. Soporta tanto archivos de flujo mitmproxy como archivos HAR exportados desde las herramientas de desarrollador del navegador. Para usarlo, captura el tráfico con mitmproxy, guárdalo como un archivo y luego ejecuta mitmproxy2swagger, especificando el archivo de entrada, el archivo de salida y el prefijo de la API. La primera ejecución genera un esquema inicial que requiere edición manual para eliminar rutas no deseadas. Una segunda ejecución genera la especificación OpenAPI completa basada en el esquema editado, incluyendo opcionalmente datos de ejemplo.

Desarrollo

Zasper: Un IDE sobrealimentado para Ciencia de Datos

2025-01-02
Zasper: Un IDE sobrealimentado para Ciencia de Datos

Zasper es un nuevo IDE creado desde cero para la ciencia de datos, con una gran concurrencia, una huella de memoria mínima y una velocidad excepcional. Es perfectamente adecuado para aplicaciones de datos de estilo REPL, siendo los cuadernos de Jupyter un ejemplo. Actualmente, Zasper es totalmente compatible con Mac y tiene compatibilidad limitada con Linux. Los puntos de referencia muestran que utiliza un 75% menos de RAM y CPU que JupyterLab. Creado por Prasun Anand, pretende ser una solución gratuita y de código abierto que se ejecuta localmente, maximizando el poder de los ordenadores modernos.

Desarrollo

Autodesk elimina publicaciones antiguas del foro: Rebelión de desarrolladores

2025-01-02

El anuncio de Autodesk de archivar (eliminar efectivamente) contenido de foros con más de 10 años ha provocado indignación en su comunidad de desarrolladores. Valiosas muestras de código, soluciones y años de experiencia compartida están a punto de desaparecer, dejando a los desarrolladores que dependen de este recurso con pérdidas significativas. Si bien Autodesk cita la mejora de la búsqueda y la experiencia del usuario como razones, los desarrolladores denuncian la medida como 'monumentalmente estúpida', acusando a la empresa de destruir el conocimiento de la comunidad y dañar las relaciones a largo plazo. Muchos están migrando a plataformas alternativas como TheSwamp y GitHub.

Kotaemon: Herramienta RAG de código abierto para chatear con tus documentos

2025-01-02
Kotaemon: Herramienta RAG de código abierto para chatear con tus documentos

Kotaemon es una herramienta de código abierto basada en Generación Aumentada por Recuperación (RAG) que te permite chatear con tus propios documentos. Tiene una interfaz limpia y fácil de usar, compatible con varios Modelos de Lenguaje Grandes (LLMs), como OpenAI, Azure OpenAI y LLMs locales. Tanto si eres un usuario final realizando QA de documentos como un desarrollador creando tu propio pipeline RAG, Kotaemon proporciona herramientas convenientes y una interfaz de usuario personalizable. Admite varios tipos de archivos y ofrece funciones avanzadas como QA multimodal, razonamiento complejo y configuración personalizable.

Desarrollo

Mercure: Una solución de comunicación en tiempo real rápida y confiable

2025-01-02
Mercure: Una solución de comunicación en tiempo real rápida y confiable

Mercure es una solución abierta, fácil, rápida, confiable y eficiente en cuanto a batería para enviar actualizaciones de datos a navegadores web y otros clientes HTTP. Es ideal para publicar actualizaciones asíncronas y en tiempo real de recursos servidos a través de APIs web, impulsando aplicaciones web y móviles reactivas. El protocolo y una implementación en Go lista para producción, junto con bibliotecas e imagen Docker, están disponibles en GitHub. También se ofrece una versión administrada y altamente escalable en Mercure.rocks.

Los blogs se pudren, las wikis esperan: El viaje de migración de un desarrollador

2025-01-02

Un desarrollador escribió en su sitio web que los blogs son como productos obsoletos, destinados a pudrirse; mientras que las wikis son como un abismo sin fin, esperando ser explorado y escrito. Está migrando su sitio a un nuevo sistema wiki, compartiendo sus pensamientos sobre blogs versus wikis y su viaje para construir un nuevo sitio. Argumenta que las wikis reflejan mejor la naturaleza dinámica y comunitaria del contenido, mientras que los blogs parecen un escaparate estático. Invita a todos a unirse a su nueva wiki, creando colaborativamente un espacio online vibrante y en constante evolución.

(j3s.sh)

AROS OS 2024: Un año de progreso significativo hacia los 64 bits

2025-01-02
AROS OS 2024: Un año de progreso significativo hacia los 64 bits

2024 fue un año excepcional para el sistema operativo AROS. El sistema principal Deadwood recibió importantes actualizaciones en sus ramas de 32 bits y 64 bits, incluyendo un emulador de 64 bits para compatibilidad con 32 bits. Distribuciones principales como AROS One y Tiny AROS se actualizaron, ofreciendo un soporte mejorado para software y juegos. Las recomendaciones de hardware se expandieron, dando la bienvenida al A600GS. Los aspectos más destacados del software incluyeron el navegador Odyssey actualizado con un motor WebKit más reciente, un nuevo lanzamiento del editor de texto Final Writer y puertos de juegos clásicos como Wipeout Rewrite y Doom 3. En general, AROS dio pasos significativos en 2024, preparando el escenario para un futuro de 64 bits.

Desarrollo

SvarDOS: DR-DOS renacido como un sistema operativo de código abierto

2025-01-02
SvarDOS: DR-DOS renacido como un sistema operativo de código abierto

SvarDOS, un sistema operativo de código abierto basado en DR-DOS, recientemente hizo la transición de ser una distribución FreeDOS a tener su propio núcleo EDRDOS. Puede ejecutarse en PC 8086 u 8088 y cuenta con un administrador de paquetes con capacidad de red. Si bien la instalación predeterminada es increíblemente pequeña, su repositorio robusto contiene más de 400 paquetes, incluidos controladores de red, editores y juegos. SvarDOS requiere más configuración manual que FreeDOS, pero sus potentes funciones y mecanismo de actualización en línea lo convierten en un notable sistema operativo retro.

El trabajo de pegamento se considera perjudicial: una guía de supervivencia para ingenieros eficaces

2025-01-02

Este artículo explora el concepto de "trabajo de pegamento" en la ingeniería de software. Si bien es crucial para la eficiencia del equipo (por ejemplo, actualizar la documentación, abordar la deuda técnica), este trabajo poco glamoroso a menudo no se recompensa, perjudicando a los ingenieros que lo priorizan. El autor argumenta que las empresas no recompensan el trabajo de pegamento porque quieren que los ingenieros se centren en la entrega de funciones, no en las mejoras de eficiencia generales. La estrategia eficiente consiste en aplicar el trabajo de pegamento de forma táctica a los proyectos de los que eres responsable, garantizando su éxito, en lugar de dispersar los esfuerzos de manera ineficaz. Esto no es una política de oficina cínica; se basa en la realidad de la baja eficiencia en las grandes empresas y en la priorización del crecimiento sobre las ganancias de eficiencia a corto plazo.

Rails 8: Sorprendentemente Bueno para Proyectos en Solitario

2025-01-01

Después de construir e implementar una nueva aplicación Rails 8, está claro: Rails es increíble, especialmente para proyectos pequeños con un solo desarrollador. La nueva guía de Introducción es excelente, guiándote desde cero hasta una aplicación lista para producción con autenticación, caché, texto enriquecido, CI y una base de datos, todo sin mucha dificultad. Rails 8 simplifica la configuración de la base de datos, haciendo que SQLite esté listo para producción. La configuración de CI integrada y los minutos gratuitos de Github Actions hacen que la integración continua sea muy fácil. Un nuevo generador de autenticación fácil de usar y una implementación simplificada mejoran aún más la experiencia. Rails 8 hace el desarrollo eficiente y accesible, incluso para desarrolladores en solitario.

Desarrollo Desarrollo Web

ClearSpace: Desintoxicación digital para reducir el tiempo de pantalla

2025-01-01
ClearSpace: Desintoxicación digital para reducir el tiempo de pantalla

ClearSpace es una aplicación diseñada para ayudar a los usuarios a reducir el tiempo que pasan frente a la pantalla. Combate la adicción al teléfono móvil ofreciendo funciones como límites de tiempo para las aplicaciones, bloqueadores de distracciones, herramientas de gestión del enfoque y formación de hábitos basada en desafíos. La aplicación también incluye informes del tiempo de pantalla, socios de rendición de cuentas y ejercicios de respiración consciente para fomentar hábitos digitales más saludables y mejorar el bienestar digital.

Optimización Intuitiva: Acelerando las Uniones de Trayectorias en Skia

2025-01-01
Optimización Intuitiva: Acelerando las Uniones de Trayectorias en Skia

El autor encontró cuellos de botella de rendimiento al realizar operaciones de unión de trayectorias en un gran número de trayectorias de gráficos vectoriales usando Skia. El enfoque inicial ingenuo de unir trayectorias iterativamente era lento, y aunque el constructor de trayectorias de Skia ofrecía optimización, aún no era suficientemente rápido. Al profundizar en los detalles internos de las operaciones de trayectoria de Skia, se descubrió que el número de curvas en cada trayectoria afectaba significativamente el rendimiento. Al dividir la unión de trayectorias en intervalos más pequeños y aplicar recursivamente una estrategia de dividir y conquistar, el autor logró una aceleración significativa, superando en última instancia el método predeterminado de Skia. Sorprendentemente, aumentar el número de operaciones de unión a través de este método resultó en un procesamiento más rápido.

Desarrollo en Sandbox: Un año en una VM

2025-01-01

Para evitar los problemas de un entorno de desarrollo desordenado, el autor cambió a una configuración de máquina virtual. Ejecutando Ubuntu 24.04 en VMware Fusion Pro en macOS, todas las herramientas y extensiones de desarrollo residen dentro de la VM, proporcionando un espacio de trabajo seguro y aislado. Si bien se pierden algunas conveniencias, como el intercambio de portapapeles perfecto, la experiencia general es fluida, con un impacto mínimo en el rendimiento de la máquina host. El autor considera que este enfoque ofrece beneficios de estabilidad y seguridad a largo plazo, que superan los pequeños inconvenientes.

Glean de Meta: Indexación de código a gran escala

2025-01-01
Glean de Meta: Indexación de código a gran escala

Meta ha lanzado Glean, un sistema de indexación de código de código abierto diseñado para la eficiencia y la escalabilidad. Glean recopila y procesa información del código fuente, proporcionándola a las herramientas de desarrollo a través de un lenguaje de consulta flexible llamado Angle. Su innovadora indexación incremental aborda los desafíos de las bases de código masivas, permitiendo funciones como la navegación del código, la búsqueda y la generación de documentación. La versatilidad de Glean admite diversos lenguajes y esquemas de datos personalizados, lo que lo convierte en un activo valioso para los desarrolladores.

El diseño de software es la construcción del conocimiento: Un estudio de caso

2025-01-01
El diseño de software es la construcción del conocimiento: Un estudio de caso

Una empresa externalizó su servicio de integración a un proveedor SaaS y luego decidió construir un reemplazo interno, SVC, debido a preocupaciones de costos. Una ingeniera altamente calificada, X10, completó el desarrollo de SVC de forma independiente. Sin embargo, los equipos posteriores lucharon por mantener y modificar el sistema, experimentando una eficiencia extremadamente baja. El artículo analiza la razón: el resultado del desarrollo de software no es código, sino la comprensión de los ingenieros del sistema y su lógica de negocios, una 'teoría'. Después de que X10 se fue, el equipo carecía de esta 'teoría', lo que provocó dificultades en el mantenimiento del sistema, haciéndolo similar a una 'casa encantada'. El autor argumenta que el diseño de software debe centrarse en la construcción de conocimiento para facilitar la comprensión y el mantenimiento por parte de equipos posteriores, evitando la creación de 'sistemas heredados'.

De Next.js a React puro: El aumento de velocidad de ComfyDeploy

2025-01-01

El equipo de ComfyDeploy migró su panel de control de Next.js a React puro, reduciendo el tiempo de compilación de 3 minutos a 18 segundos y el tiempo de recarga instantánea a menos de 200 ms. Esto se debió a problemas con los tiempos de compilación lentos de Next.js, las pruebas de API difíciles y los altos costos de API de Vercel a medida que su proyecto crecía. El cambio a React con TanStack Router y Rspack mejoró drásticamente la eficiencia del desarrollo y los obligó a optimizar el diseño de la API y la estructura del código. Si bien perdieron algunas funciones de Next.js, consideraron que las compensaciones valían la pena, lo que resultó en compilaciones más rápidas, una experiencia de desarrollo más agradable y una arquitectura más optimizada.

Desarrollo
1 2 195 196 197 199 201 202 203 214 215