Sistemas & Desarrollo
13 meneos
596 clics
Aplicando el requerimiento del “buen gusto” en la programación de Linus Torvalds [ENG]

Aplicando el requerimiento del “buen gusto” en la programación de Linus Torvalds [ENG]  

En una reciente entrevista a Linus Torvalds, el creador de Linux, este hizo un apunte sobre programar con “buen gusto”. ¿Buen gusto? El entrevistador le pidió algunos detalles al respecto y Linus presentó un trozo de código. Código que era un ejemplo de programación de “mal gusto” para poder hacer un contraste inicial. Entonces, ¿qué es programar con “buen gusto”?
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.
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.
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.
13 meneos
484 clics
Diez razones para migrar a MariaDB si todavía usas MySQL [ENG]

Diez razones para migrar a MariaDB si todavía usas MySQL [ENG]

La primera versión de MySQL fue lanzada en 1995 por MySQL AB. Aunque al principio fue lanzada como una base de datos para uso personal, pronto evolucionó a una base de datos empresarial. En 2008, Sun Microsystems compró MySQL y en 2009 Oracle compró Sun Microsystems. Fue debido a la desconfianza con la administración de Oracle sobre MySQL por lo que se creó un fork: MariaDB. Con el paso del tiempo, MariaDB ha reemplazado a MySQL en numerosos ámbitos, siendo estas diez razones las que consideramos más importantes para hacer la migración.
4 meneos
146 clics
Mosh: el terminal móvil [ENG]

Mosh: el terminal móvil [ENG]  

Mosh es un terminal remoto que permite itinerancia, soporta conectividad intermitente y proporciona echo local inteligente y edición de pulsaciones de teclado del usuario. Mosh es un reemplazo de SSH. Es más robusto y más responsable, especialmente sobre redes wifi y redes móviles. Además, Mosh es de código libre y está disponible para Linux, Windows y macOS, entre otras plataformas.
12 meneos
670 clics
Las características de los malos programadores [ENG]

Las características de los malos programadores [ENG]

Descripción de arquetipos de desarrolles de software terribles que pueblan el ecosistema de "programación defensiva".
12 meneos
373 clics
Doce ideas de la filosofía Clean que no pueden faltar en tu código

Doce ideas de la filosofía Clean que no pueden faltar en tu código

Si has oído conceptos como SOLID, conoces a personas como Uncle Bob, o eres un experto en arquitecturas, seguro que has oído hablar sobre Clean o el código limpio. Esta filosofía básicamente aglutina un conjunto de ideas que pretenden hacer que el código sea más fácil de leer, mantener, extender y menos propenso a errores. La idea original surgió gracias al libro del mismo nombre escrito por Robert C. Martin (Uncle Bob), y del que he querido extraer algunas ideas que creo que son interesantes.
13 meneos
201 clics

¿Cuántas instrucciones tiene la arquitectura Intel x86? [ENG]

Aunque parezca mentira, es sorprendentemente difícil dar una respuesta correcta. De hecho, todo depende de cómo se cuenten. Y los detalles al respecto son bastante interesantes. Para no dejarte colgado: Intel tiene un software para codificar y decodificar instrucciones llamado XED que indica que hay 1503 instrucciones en la arquitectura x86, pero depende de cómo se cuenten. Por ejemplo, “ADD” y “LOCK ADD” son diferentes instrucciones, pero algunos ensambladores las cuentan como una sola, ya que la segunda es igual que la primera más un prefijo.
11 2 0 K 56
11 2 0 K 56
13 meneos
265 clics

Lo básico sobre la seguridad de aplicaciones web [ENG]  

El desarrollo de páginas web modernas tiene muchos retos. Uno de ellos es la seguridad, que habitualmente está subestimada. Mientras que algunas técnicas, como el análisis de amenazas, son cada vez más reconocidas como esenciales para cualquier desarrollo serio, hay también otras prácticas básicas que todo desarrollador debería estar haciendo como alto rutinario.
11 meneos
171 clics
Cómo plantarle cara al ‘legacy code’

Cómo plantarle cara al ‘legacy code’

Aunque podemos tener una discusión profunda sobre lo que es y lo que no es legacy code, hay un aspecto concreto que para mí puede marcar la diferencia, y es la confiabilidad con la que somos capaces de realizar cambios sobre el producto a medida que estos son requeridos por negocio. Si en una base de código en la que ciertas tarjetas de nuestro Kanban se eluden sistemáticamente por parte de los desarrolladores, se tiene un claro síntoma de que hay una gran porción del sistema sobre la que nadie quiere asumir el riesgo de su modificación.
5 meneos
125 clics

Crear un mirror para un volumen lógico LVM existente

Al crear un mirror LVM se crean copias idénticas de los datos del volumen lógico en los distintos dispositivos que lo componen. La idea inicial es tener protección ante fallos de dispositivos aunque podemos dar otros usos interesantes a esta funcionalidad. Los vemos a continuación.
27 meneos
827 clics
Por qué Uber cambió sus bases de datos de Postgres a MySQL [ENG]

Por qué Uber cambió sus bases de datos de Postgres a MySQL [ENG]  

La primera arquitectura de Uber consistía en una aplicación monolítica escrita en Python conectada a una base de datos PostgreSQL. Desde entonces, esta arquitectura ha cambiado bastante a un modelo de microservicios y nuevas plataformas de datos. Entre ellas destaca el cambio de PostgreSQL por Schemaless, una capa de abstracción sobre MySQL que construye una base de datos distribuida. En este artículo se explican las motivaciones técnicas que llevaron a dicho cambio.
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.
11 meneos
252 clics

El bucle ‘for’ en BASH, el primero paso en la automatización en Linux [ENG]

Creo que dominar el bucle ‘for’ en BASH en Linux es una de las partes fundamentales que tienen que conocer los administradores de sistemas (y los desarrolladores), lo que lleva sus habilidades hasta el siguiente nivel. En la siguiente entrada explicaré cómo funciona un bucle ‘for’ en BASH y mostraré varios útiles ejemplos.
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.
12 meneos
51 clics

Lanzada la versión 2.9 de Git [ENG]

Se ha lanzado la versión 2.9 del sistema de control de versiones Git. En esta versión se incluyen tanto corrección de errores como nuevas características, entre las que se incluyen: gestión de submódulos más rápida y flexible; mejora en la visualización de diffs; chequeo de commits al hacer rebase; mejora en la presentación de los mensajes de log; etc.
12 meneos
135 clics
Profundizando en el “Apple File System” (APFS), el nuevo sistema de archivos de Apple [ENG]

Profundizando en el “Apple File System” (APFS), el nuevo sistema de archivos de Apple [ENG]

Apple desplegará en todos sus sistemas operativos un nuevo sistema de archivos, el “Apple File System”, o APFS, dejando obsoleto el sistema de archivos anterior, HFS+. APFS incluye características avanzadas —algunas de ellas similares a las de ZFS—, como encriptación nativa, copy-on-write, snapshots, clonación, etc.
10 2 0 K 56
10 2 0 K 56
6 meneos
141 clics

Interfaces de validación de formularios en HTML y CSS [ENG]  

Se puede hacer una cantidad impresionante de validaciones de formularios sólo usando atributos de HTML y hacer la experiencia de usuario mucho más limpia y sencilla gracias a los selectores de CSS, aunque se requieren unos pequeños trucos de CSS —que veremos a continuación— para que las cosas funcionen bien.
8 meneos
203 clics

Curso de AngularJS y REST

Bienvenido al curso completo de AngularJS y REST con Java y Sprint en Español. Este curso pretende enseñarte como crear una aplicación web con AngularJS en la parte cliente y un servidor REST con Java y Spring.
4 meneos
57 clics
Programando para Haiku - File panel - Parte II

Programando para Haiku - File panel - Parte II  

Continuamos los tutoriales de programación en Haiku. Hoy veremos como usar el File Panel. ¿Qué es el File Panel? El File Panel es el diálogo que nos aparece cuando queremos abrir o guardar un archivo o carpeta. En todos los sistemas operativos gráficos es similar.
8 meneos
305 clics

Cinco errores que cometen los novatos al trabajar con bases de datos [ENG]

Cuando se empieza como un desarrollador, hay una enorme cantidad de cosas que captar. En primer lugar está el propio lenguaje; después, todas las peculiaridades del marco de trabajo; y después de eso (o tal vez antes) hay que mezclar el desarrollo con las interfaces de usuario. Y es en ese momento donde hay que decidir dónde almacenar todos los datos que se van a usar. Después de tantas cosas, quizás sea a la base de datos a la que menos importancia se le da, de ahí que surjan las malas prácticas.
7 meneos
172 clics

Modismos (“idioms”) del lenguaje de programación D [ENG]

Lista de diferentes modismos (“idioms”) en el lenguaje de programación D.
19 meneos
187 clics
¿Qué es Clonezilla? Tu amigo ante los desastres

¿Qué es Clonezilla? Tu amigo ante los desastres  

Clonezilla es un software libre de clonación de discos enteros o particiones. Por eso te puede salvar de un buen desastre, permitiéndote disponer de un backup o copia de seguridad de tu sistema o datos sin que se vean afectados por un fallo físico de tu hardware de almacenamiento o por cualquier otro problema de software, como por ejemplo un ransomware que te cifre el contenido de tu disco y debas pagar un rescate si quieres recuperarlo.

menéame