Sistemas & Desarrollo
9 meneos
115 clics
Diez trucos para el editor Vi/Vim (volumen 2) [ENG]

Diez trucos para el editor Vi/Vim (volumen 2) [ENG]  

En esta entrada es la segunda parte de los trucos para el editor de texto Vi/Vim [Primera parte: www.meneame.net/m/SysDevs/diez-trucos-editor-vi-vim-volumen-1-eng ]. Vim (Vi IMproved) es la versión moderna del editor Vi, el editor de texto orientado a la consola originalmente creado para entornos Unix, que se encuentra presente o es instalable en todas las distribuciones de Linux.
6 meneos
137 clics
Introducción a LXD 2.0, el gestor de contenedores a través de LXC en Linux [ENG]

Introducción a LXD 2.0, el gestor de contenedores a través de LXC en Linux [ENG]

Como está cerca de salir la versión 2.0 de LXC, LXD y LXCFS, creo que es una buena idea hablar sobre las cosas nuevas que van a venir en esta versión del proyecto desde que comenzó hace año y medio. En esta serie de entradas hablaré de qué es LXC y LXD, de la instalación y configuración, de los primeros pasos con contenedores y de su API, entre otras muchas cosas.
11 meneos
145 clics
Un breve vistazo a cómo varios editores de texto gestionan sus datos textuales [ENG]

Un breve vistazo a cómo varios editores de texto gestionan sus datos textuales [ENG]

Esta es una reseña de cómo varios editores de texto gestionan sus datos textuales dentro de la memoria. Los programadores queremos las mejores herramientas para el trabajo, pero ¿qué significa lo mejor? Para algunos lo mejor de la edición de alta eficiencia física. Otros prefieren que sus editores sean totalmente eficaces para sacarles el máximo partido. Hay una carrera para conseguir estas características y en este artículo se muestra qué han elegido sus desarrolladores para conseguirlas.
7 meneos
154 clics
Simulación de gráficos de juegos en monitores CRT [ENG]

Simulación de gráficos de juegos en monitores CRT [ENG]  

En los últimos años he lanzado una serio de juegos indie cuyos gráficos eran de tipo pixel art modificados con un filtro para simular un monitor CRT. En varias ocasiones me han preguntado cómo funciona este simulador y si podría ser adaptado a otro tipo de software (como emuladores u otros populares motores de juegos), entre otras cosas, así que en esta entrada contaré la historia y la motivación de esta simulación de monitor CRT junto con notas prácticas sobre su implementación.
6 meneos
66 clics
El error palinopsia: ¿está VirtualBox leyendo tu correo? Reconstrucción del framebuffer desde la VRAM [ENG]

El error palinopsia: ¿está VirtualBox leyendo tu correo? Reconstrucción del framebuffer desde la VRAM [ENG]  

Este documento describe un método de lectura y muestra de los framebuffers usados previamente por ciertas populares tarjetas gráficas. En los cuatro portátiles probados, el contenido de la memoria VRAM no fue borrada después de un reinicio, por lo que fue posible que la memoria VRAM del anfitrión fuera leída por un huésped VirtualBox, con lo que se podría leer información confidencial de un anfitrión confiable desde un huésped no confiable.
8 meneos
116 clics

Docker en LXD [ENG]

Desde los primeros tiempos de los contenedores de Linux (alrededor de 2006) tenemos que distinguir entre contenedores de aplicaciones y contenedores de sistema. En esta entrada se mostrarán sus pequeñas diferencias y se mostrará cómo usar Docker (contenedor de aplicaciones) en LXD (contenedor de sistema).
6 meneos
66 clics
Desplegar un servidor de IRC en Ubuntu [ENG]

Desplegar un servidor de IRC en Ubuntu [ENG]  

A pesar de su gracioso nombre, InspIRCd es uno de los servidores de IRC de código abierto más sencillos de instalar desde que tiene paquete en los repositorios de Ubuntu. En estrada veremos cómo instalarlo y cómo configurarlo.
7 meneos
116 clics
Espacios de nombres de red en el kernel de Linux [ENG]

Espacios de nombres de red en el kernel de Linux [ENG]

Los espacios de nombres (namespaces) en Linux son una característica relativamente nueva que es esencial para implementar contenedores. Un espacio de nombres envuelve un recurso global del sistema en una abstracción que es ligada sólo a los procesos dentro de dicho espacio de nombres proporcionando aislamiento de recursos. En este artículo se explicará el espacio de nombres de red y se mostrará un ejemplo práctico.
8 meneos
225 clics
Cómo tener éxito en tu próxima entrevista de trabajo para desarrolladores

Cómo tener éxito en tu próxima entrevista de trabajo para desarrolladores

Seguramente estás un poco harto de tu empleo actual. Tienes un salario absurdo, tu jefe no valora lo que haces, a tu empresa sólo le importa vender y la parte de desarrollo es una carga y, en definitiva, cuando llega el domingo por la noche te acecha la gran depresión. Por tanto, te quedan dos opciones: o te acabas uniendo al clan de los vendedores, o te quedarás comiendo marrones y con un sueldo ridículo el resto de tu vida. En realidad hay una tercera: escapar. Por eso, necesitas un plan de acción sólido para tus próximas entrevistas.
7 meneos
94 clics
Guía definitiva acerca de las pseudoclases y los pseudoelementos de CSS [ENG]

Guía definitiva acerca de las pseudoclases y los pseudoelementos de CSS [ENG]  

Sin complicarse demasiado con la definición técnica de la W3C, una pseudoclase es básicamente un estado fantasma o característica específica de un elemento que puede ser accedido mediante CSS. Los pseudoelementos son como elementos virtuales que pueden ser tratados como elementos HTML normales. La diferencia es que estos no existen en el DOM. En el resto del artículo veremos cómo funcionan y ejemplos de los mismos.
7 meneos
171 clics

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

Lista de diferentes modismos (“idioms”) en el lenguaje de programación D.
11 meneos
170 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.
8 meneos
97 clics
Ejecutar aplicaciones ZooKeeper sin usar ZooKeeper gracias a zetcd [ENG]

Ejecutar aplicaciones ZooKeeper sin usar ZooKeeper gracias a zetcd [ENG]  

Los sistemas distribuidos generalmente confían en protocolos de consenso para coordinar su trabajo. Estos protocolos garantizan que la información sea distribuida en orden y sin conflictos. La usabilidad de estos protocolos es evidente debido a la proliferación de varias implementaciones, como chubby, ZooKeeper, etcd, consul, etc. que, aunque difieren en filosofía, sirven los mismos datos. Como parte de etcd, el equipo ha desarrollado zetcd para servir peticiones de ZooKeeper sin ZooKeeper.
8 meneos
617 clics
Trucos para BASH [ENG]

Trucos para BASH [ENG]

Trucos para la shell BASH para acelerar el uso diario.
9 meneos
260 clics
Una inmersión en el mundo de los virus de MS-DOS [ENG]

Una inmersión en el mundo de los virus de MS-DOS [ENG]  

El malware de MS-DOS siempre me haya fascinado hasta cierto punto, de ahí que haya escrito esto. Pero primero debemos preguntarnos: ¿qué es DOS? DOS es una “versión” de CP/M, otro sistema operativo muy antiguo. La familia DOS cubre una amplia gama de proveedores, ya que DOS no significa que se ejecutará en una CPU 8086 o mejor. Algunos de estos proveedores de DOS comparten compatibilidad con API, lo que significa ¡que algunos han compartido malware! Entonces, ¿cómo se propaga este malware? ¿Cómo se oculta? ¿Cuáles son sus efectos?
10 meneos
276 clics

Hackeos para operaciones con bits [ENG]

En la página Bit Twiddling Hacks hay una estupenda, antigua y esotérica recopilación de operaciones a nivel de bits para llevar a cabo todo tipo de funciones con valores numéricos de forma conveniente. Quien dice «conveniente» dice «de forma óptima» porque por lo general estas opciones requieren menos pasos y son más rápidas, o evitan ciertas operaciones de los procesadores que pueden añadir ciclos y resultar más lentas. [Vía Microsiervos]
8 meneos
44 clics

Algunos datos sobre POSIX [ENG]

En los primeros días de la informática, los programadores sólo podían soñar con la portabilidad. Todos los programas se escribieron directamente en código de máquina para cada arquitectura de computadora en la que debían ejecutarse. Los lenguajes ensambladores con nombres mnemotécnicos para cada instrucción de la CPU y otras ventajas facilitaron un poco la vida de los programadores, pero los programas seguían siendo específicos de la arquitectura. Los sistemas operativos aún no se habían inventado, por lo que un programa no […].
7 meneos
50 clics

Actualizaciones críticas en Git v2.45.1

GIT está llamando actualizar a la la última versión GIT 2.45.1, lanzada el 14 de mayo de 2024, que aborda cinco vulnerabilidades. Las plataformas afectadas son Windows, MacOS, Linux e incluso *BSD, ¡por lo que estas soluciones son importantes para todos! Esta versión se coordinó con Visual Studio y Github Desktop, que incluyen un subconjunto de GIT. También están lanzando varias actualizaciones de defensa en profundidad para corregir errores.
8 meneos
89 clics

¿Cuál es el proceso que tiene como identificador (PID) el cero? [ENG]

La versión muy corta de cuál es el proceso cuyo identificador es cero es que ¡los PID de Unix comienzan en 0! El PID 0 simplemente no se muestra en el espacio de usuario a través de las API tradicionales. PID 0 inicia el kernel, luego se retira a una vida tranquila para ayudar un poco con la programación de procesos y la administración de energía. Pero hay una versión más larga que explica correctamente cuál es el proceso con identificador cero y que veremos a continuación.
7 meneos
89 clics
Principios y algoritmos de concurrencia: Procesos y concurrencia

Principios y algoritmos de concurrencia: Procesos y concurrencia

Los programas en ejecución se denominan procesos, son elementos de gestión centrales del sistema operativo. Desde el punto de vista del núcleo del sistema operativo los procesos tienen dos partes bien diferenciadas, la imagen de memoria y las tablas de control de procesos. Se denomina imagen de memoria al código y datos del programa en la memoria RAM. Se diferencian cuatro partes según su contenido.
5 meneos
283 clics

Python no es C [ENG]

He estado usando Python mucho últimamente en diversos proyectos de tratamiento de datos. Python es conocido por su facilidad de uso, por lo que alguien con experiencia en programación podría usarlo de manera eficaz en pocos días. Esto suena bien, pero puede ser un problema si se programa en Python como si se programase en otro lenguaje. Déjenme darles un ejemplo basado en mi propia experiencia. He escrito código en varios lenguajes por lo que Python no debería ser un problema, ¿no? Pues caí en la trampa. Usé Python como si fuera C.
7 meneos
98 clics

Go, D, Erlang y C en la vida real: implementación del protocolo MQTT [ENG]

En el trabajo he estado trabajando con el protocolo MQTT (MQ Telemetry Transport), el cual usa un modelo publicación/subscripción. Empecé con una implementación de código abierto llamada Mosquitto pero luego un amigo me dijo que él había hecho una implementación en Go y presumía de que era muy rápida. Como no soy muy fan de Go pero sí lo soy de D, decidí hacer una implementación en D que pasase los tests de la implementación en Go. Y estos son los resultados.
6 meneos
73 clics
Cómo obtener información del consumo de memoria y CPU de los contenedores de Linux (LXC) [ENG]

Cómo obtener información del consumo de memoria y CPU de los contenedores de Linux (LXC) [ENG]

Para mostrar información acerca de los contenedores de Linux (LXC) se usa el comando lxc-info. Mediante este comando se puede obtener información como: uso de CPU en segundos; uso de I/O; uso de memoria; uso de memoria del kernel; uso de ancho de banda de red. A continuación se muestran ejemplos y casos de uso.
6 meneos
70 clics

Cómo prevenir una bomba ‘fork’ limitando los procesos de usuario [ENG]

Limitar los procesos de usuario es importante para el funcionamiento estable de un sistema operativo como Linux. Para limitar dichos procesos de usuario sólo se tiene que poner la configuración correcta en el archivo /etc/security/limits.conf. Pero comencemos por entender cómo está estructurado este archivo y cuáles son sus opciones principales.
6 meneos
55 clics
Un desarrollador va a poner el foco en la mejora del soporte de hardware en GNU Hurd [ENG]

Un desarrollador va a poner el foco en la mejora del soporte de hardware en GNU Hurd [ENG]

Como se ha explicado recientemente en el artículo “El estado actual de Debian GNU Hurd”, el soporte de hardware por GNU Hurd es bastante pobre en este momento: no tiene soporte para USB, el soporte de sonido está en sus primeras etapas y el desarrollo de 64 bits solo está en sus inicios. Sin embargo, un desarrollador tiene la esperanza de trabajar en la mejora de este soporte de hardware para Hurd.

menéame