Sistemas & Desarrollo
8 meneos
218 clics

Xplain: explicando cómo funciona el sistema de ventanas X11 [ENG]  

¿Qué son las X? ¿Cómo interaccionan con mi tarjeta gráfica y mi teclado y ratón? ¿Para qué usan las X las aplicaciones? ¿Qué es Wayland y cómo encaja en el contexto? ¿Cuáles son los problemas de las X que nos han llevado a escribir un nuevo sistema de ventanas? Estas y otras preguntas son las que me han llevado a indagar sobre cómo funciona el sistema de ventanas de X11 y a escribir este artículo.
9 meneos
251 clics
Diez reglas de la NASA de escritura de código fuente crítico y seguro [ENG]

Diez reglas de la NASA de escritura de código fuente crítico y seguro [ENG]

Todo gran proyecto de software utiliza estándares de codificación y reglas de estilo. Estas reglas establecen las bases que se han de seguir a la hora de escribir software como, por ejemplo, “¿cómo se debe estructurar el código?”; o “¿qué característica del lenguaje usado se debe usar y cuál no?”. Los desarrolladores de la NASA son unos de los que las siguen para poder desarrollar código crítico y seguro. Aquí están las 10 principales reglas que usan.
8 meneos
69 clics

Ejecutar chequeos de SSL Labs desde la línea de comandos

La herramienta Qualys SSL Labs es sin duda de lo mejor que hay en Internet para auditar el estado de los servicios SSL/TLS y PKI de un servidor. Como es lógico, ejecutar la herramienta vía web genera ciertas limitaciones, como por ejemplo la ejecución masiva o automatizada de tests. A través de la API y la herramienta ssllabs-scan podemos evitar estas restricciones usando la línea de comandos.
10 meneos
161 clics
Cómo evitar errores usando C++ moderno [ENG]

Cómo evitar errores usando C++ moderno [ENG]

Uno de los mayores problemas de C++ es tener un gran número de constructores cuyo comportamiento no está definido o simplemente es inesperado para el desarrollador. Estos problemas se identifican generalmente cuando se pasa el analizador estático que es, hasta donde sabemos, la parte donde mejor se detectan dichos errores, en la fase de compilación. Veamos qué técnicas de C++ moderno nos ayudan a escribir código simple y limpio para evitar este tipo de errores.
10 meneos
200 clics

Buenas prácticas en el desarrollo de interfaces de línea de comandos [ENG]

Las interfaces de línea de comandos se siguen usando para la administración de infraestructuras de software. Aunque la mayoría de estas herramientas suelen ser internas, su calidad no debe ser diferente a las herramientas públicas. Para ello es conveniente seguir una serie de buenas prácticas durante su desarrollo.
8 meneos
186 clics
Cómo el depurador (debugger) pone los ‘breakpoints’ [ENG]

Cómo el depurador (debugger) pone los ‘breakpoints’ [ENG]  

Estoy fascinado con los depuradores (debuggers). Tanto que escribí un pequeño y muy básico depurador como uno de mis recientes proyectos. En esta entrada voy a escribir lo que he aprendido acerca de cómo un depurador establece un breakpoint.
9 meneos
176 clics
Entender la pila de audio en sistemas Unix [ENG]

Entender la pila de audio en sistemas Unix [ENG]

El audio en Unix es un pequeño zoológico, hay tantas siglas para proyectos y API que es fácil perderse. ¡Abordemos ese problema! La mayoría de los artículos son confusos porque utilizan jerga técnica de audio o porque apenas rascan la superficie y dejan a la gente sin pistas. Poco de conocimiento puede ser peligroso. En este artículo intentaré cerrar la brecha al no requerir ningún conocimiento previo y al mismo tiempo brindar una buena descripción general de todo el panorama de audio de Unix.
9 meneos
113 clics
Servicios “trampa” para detener la ejecución de ransomware

Servicios “trampa” para detener la ejecución de ransomware

Ollie Whitehouse de NCC Group ha publicado SWOLLENRIVER, una interesante herramienta bajo licencia AGPL que implementa una serie de procesos canarios que se controlan entre sí. Si estos servicios se detienen (a través de net stop o similar) y no durante el cierre del equipo, disparará un token Canary DNS e hibernará el host. Si a algunos no os suenan los Canary Tokens deciros que es un concepto muy interesante en el mundo Deception/honeypots. Es como los clásicos web bugs que se incluían en los correos electrónicos, imágenes transparentes que se cargaban mediante una URL única embebida en una image tag, alertando al “cazador” que está monitorizando.
11 meneos
224 clics
Cómo hackear la unidad de gestión Bosch lcn2kai que traen algunos vehículos Nissan [ENG]

Cómo hackear la unidad de gestión Bosch lcn2kai que traen algunos vehículos Nissan [ENG]  

Mi Nissan Xterra vino con una unidad de gestión con pantalla táctil, navegación incorporada, pantalla de cámara marcha atrás, funciones multimedia y conectividad para teléfonos inteligentes. Algunas de las funciones más avanzadas solo están disponibles a través de la aplicación NissanConnect, que requiere registro y suscripción. Nunca lo he usado y ni siquiera estoy seguro de si todavía es compatible. ¿No sería estupendo si pudiéramos ejecutar código en el dispositivo e incluso desarrollar nuestras propias extensiones y aplicaciones?
9 meneos
572 clics
Aprendiendo de los 10 errores más comunes que comenten los desarrolladores [ENG]

Aprendiendo de los 10 errores más comunes que comenten los desarrolladores [ENG]

En esta lista se presentan los 10 errores más comunes que los nuevos desarrolladores (y a veces incluso los desarrolladores con experiencia) comenten, con el fin de aprender de los mismos y evitarlos. En esta lista se incluyen: no confiar en los datos de entrada del usuario; no hacer tests manuales, automatizarlos; no omitir la documentación; etc.
12 meneos
532 clics
En crudo y sin censura: raw sockets I (en C)

En crudo y sin censura: raw sockets I (en C)

Aprovechando que tengo que guardar reposo por un mini accidente laboral, he decidido ponerme con algo que llevaba posponiendo un tiempo (permitirme la redundancia): salsear un poquito con los sockets en C y ya de paso escribir una entrada en el blog. A lo largo de esta serie de entradas intentaré mostrar para qué podemos utilizar la programación de sockets (sobre todo los RAW) siempre mirando desde un prisma, digamos, oscuro. Soy consciente que no es un tema fácil de tratar, y mucho menos hacer que la lectura sea liviana a la […].
15 meneos
658 clics
Siete atajos del historial de BASH que realmente usarás [ENG]

Siete atajos del historial de BASH que realmente usarás [ENG]

La mayoría de las guías de atajos del historial de BASH los enumeran exhaustivamente, pero el problema con esto es que usaría un atajo una vez, luego lo examinaría mientras probaba todas las posibilidades. ¡Entonces pasaría a mi jornada laboral y los olvidaría por completo, acordándome sólo del conocido !! (doble admiración) que aprendí cuando comencé a usar BASH. Así que este artículo describe los atajos que uso en el día a día.
14 meneos
223 clics
Soporte de librerías OpenGL en BASH [ENG]

Soporte de librerías OpenGL en BASH [ENG]

Un proyecto que comenzó como una broma puede ser útil para las personas que desean aprender los conceptos básicos de OpenGL. Este proyecto es un simple ejecutable que lee comandos de OpenGL de la entrada estándar para luego dibujar la salida en una ventana de X11. Cualquier entrada de usuario en esa ventana de X11 será enviada a la salida estándar. Todo esto permite que con cualquier aplicación que sea capaz de leer y escribir texto se puedan crear aplicaciones gráficas interactivas.
9 meneos
185 clics
La caché es la nueva RAM [ENG]

La caché es la nueva RAM [ENG]  

Una de las (pocos) ventajas de estar en la tecnología desde hace mucho tiempo es que se llega a ver múltiples ciclos de esta de principio a fin. Tienes la oportunidad de ver cómo se propagan los avances. Pero si todo lo que se ha visto es sólo parte de la curva, será difícil extrapolar correctamente. Lo sorprendente no es la rapidez con la que cambian los hechos sino lo lentamente que reacciona la ingeniería como respuesta a estos cambios.
9 meneos
160 clics
Tipografías gratuitas pero con personalidad [ENG]

Tipografías gratuitas pero con personalidad [ENG]  

La tipografía usada en un diseño puede marcar la diferencia. Sin embargo, si tu proyecto tiene que llevarse bien con un presupuesto limitado y tienes que usar tipografías gratuitas, las buenas nunca son fáciles de encontrar. Por suerte, nosotros nos hemos topado con unas cuantas joyas. La siguiente lista de tipografías puede ser descargada de forma gratuita y usada en tu proyecto (ya sea privado o comercial) para darle un toque de distinción.
9 meneos
151 clics
Preparándose para HTTP/2: una guía para diseñadores y desarrolladores web [ENG]

Preparándose para HTTP/2: una guía para diseñadores y desarrolladores web [ENG]

El protocolo de transferencia de hipertexto (HTTP) es el protocolo que regula la conexión entre el servidor y los navegadores de los clientes web. Por primera vez desde 1999 tenemos una nueva versión de este protocolo que promete sitios web mucho más rápidos. En este artículo vamos a ver los conceptos básicos de HTTP/2 que se aplican a los diseñadores y desarrolladores web. Además, se explicarán algunas de las características clave del nuevo protocolo mirando la compatibilidad de los navegadores y de los servidores.
10 meneos
173 clics
Windows Sysinternals: navaja suiza para administrar sistemas Microsoft

Windows Sysinternals: navaja suiza para administrar sistemas Microsoft

Windows Sysinternals es un paquete de utilidades que simplifica realizar determinadas tareas de administración de una PC. Se encuentra dividido en grupos que permiten trabajar sobre el disco, la red, los procesos, seguridad y otras tantas cosas más. Es importante destacar que este conjunto de programas es para usuarios con conocimientos avanzados. Esta suite fue creada por Mark Russinovich y Bryce Cogswell y luego Microsoft la compró, ahora ocupa lugar entre los programas de mantenimiento que ofrece la empresa.
8 meneos
141 clics
Entendiendo los archivos y las unidades de systemd [ENG]

Entendiendo los archivos y las unidades de systemd [ENG]

Cada vez más distribuciones de Linux están adoptando systemd como sistema de inicio. Este potente software puede gestionar varios aspectos del servidor, como pueden ser servicios, puntos de montaje y estados del sistema. En systemd, una unidad (unit en inglés) se refiere a un recurso que el sistema es capaz de manejar. Este el primer objeto con el que systemd trabaja. Estos recursos son definidos en archivos de configuración llamados “unit files”.
8 meneos
194 clics
Diez paquetes de SublimeText para desarrolladores web

Diez paquetes de SublimeText para desarrolladores web  

SublimeText es una de los editores de texto líderes del mercado; la extensibilidad de su sistema de paquetes le hace muy flexible. Cada desarrollador puede seleccionar los paquetes que más le interesan para cada proyecto. Vamos a revisar algunos de los más interesantes para desarrolladores web, empezando por Package Control, el gestor de paquetes de Sublime; debemos instalarlo para poder acceder al resto.
8 meneos
144 clics
Crea tu propio RAMDisk en tu distro Linux

Crea tu propio RAMDisk en tu distro Linux

Como sabes, la velocidad de acceso de una memoria es muy importante. Los cuellos de botella generados antaño entre las memorias magnéticas y los procesadores hicieron que se tuviese que incluir una memoria intermedia más rápida, la RAM. Después, con el avance de los microprocesadores vino la cache, aun más rápida para ofrecer una memoria intermedia entre la RAM y los registros de la CPU. Más recientemente han aparecido los discos duros SSD, que son más rápidos que los HDD magnético-mecánicos al estar basados en memoria flash.
8 meneos
119 clics

Introducción a la arquitectura ARMv8 de 64 bits [ENG]

La arquitectura ARM es una arquitectura de tipo RISC (Reduced Instruction Set Computer). Originalmente ARM significaba “Acorn RISC Machine” pero hoy su significado es “Advanced RISC Machines”. En los últimos años los procesadores ARM, gracias a la difusión de los teléfonos inteligentes y las tablets, se han convertido en procesadores muy populares, sobre todo gracias a sus reducidos costes y mayor eficiencia energética comparados con procesadores CISC.
15 meneos
229 clics
La métrica de utilización de la CPU está mal [ENG]

La métrica de utilización de la CPU está mal [ENG]  

La utilización de la CPU es la medida que todos utilizan para medir el rendimiento de un procesador. Pero el porcentaje de CPU es una medida engañosa de cuán ocupado está realmente su procesador, dice Brendan Gregg, arquitecto de alto rendimiento de Netflix, en lo que él llama un “anuncio de servicio público de cinco minutos” en la 16ª edición de la Exposición de Linux del Sur de California (SCALE). [Vía: opensource.com: CPU utilization is wrong ].
10 meneos
138 clics
Puesta a punto de PHP y MySQL

Puesta a punto de PHP y MySQL

Tuning de MySQL y PHP para mejorar el rendimiento aplicaciones web como puede ser un Wordpress.
10 meneos
168 clics
La guía definitiva sobre las llamadas al sistema de Linux [ENG]

La guía definitiva sobre las llamadas al sistema de Linux [ENG]  

Esta entrada explica cómo funcionan las llamadas al sistema (system calls) del kernel Linux. Además, también explica diferentes métodos de creación de llamadas al sistema, cómo hacer llamadas al sistema de forma manual, los puntos de entrada y de salida de las llamadas al sistema en el kernel, las funciones relacionadas en glibc, errores y mucho, mucho más.
9 meneos
74 clics

TSWS, un servidor web básico escrito con BASH y Netcat [ENG]

TSWS es una prueba de concepto de un servidor web básico escrito usando solamente BASH y Netcat.

menéame