Sistemas & Desarrollo
11 meneos
226 clics
Shell mediante un documento .odt malicioso (Squiblydoo)

Shell mediante un documento .odt malicioso (Squiblydoo)  

El correo corporativo sigue siendo un vector de entrada interesante para realizar una intrusión. Con el paso de los años se ha ido mejorado la seguridad de las pasarelas de mensajería y de los endpoints, pero hoy en día siguen surgiendo nuevas técnicas capaces de evadir muchas de estas protecciones. En esta entrada vamos a ver un par de claros ejemplos que os harán pensar en la (todavía) peligrosidad de abrir un fichero adjunto, sobretodo si se trata de un remitente desconocido.
11 meneos
340 clics

D as BetterC: reescribiendo `make.c` en D [ENG]

D como un mejor C (también conocido como DasBetterC, en inglés) es una forma de actualizar proyectos existentes programados en C reprogramándolos en D de forma incremental. En este artículo se muestra paso a paso el proceso de reescribir en D un proyecto no trivial escrito en C, además de algunos de los problemas comunes que pueden surgir.
9 meneos
236 clics

Explorando la implementación de ‘std::string’ [ENG]

Todo desarrollador de C++ sabe que std::string representa una secuencia de caracteres en memoria. Esta clase administra su propia memoria y su uso es muy intuitivo. Hoy exploraremos cómo define std::string el estándar de C++ y también observaremos cómo lo implementan los 4 compiladores principales (Visual Studio 14, GCC versión anterior a 5, GCC versión 5 o mayor y Clang [LLVM]).
12 meneos
424 clics
Guía para evitar ataques DDoS usando IPTables en Linux [ENG]

Guía para evitar ataques DDoS usando IPTables en Linux [ENG]

Hay diferentes formas de crear reglas propias para evitar ataques DDoS usando IPTables. En este artículo se verán varios métodos de protección contra ataques DDoS usando IPTables, entre ellos: seleccionar la mejor tabla y cadena de IPTables para detener los ataques DDoS; modificar las configuraciones del kernel para mitigar los efectos de los ataques DDoS; usar IPTables para bloquear la mayoría de los ataques DDoS basados en TCP; y usar la propiedad SYNPROXY de IPTables para bloquear inundaciones SYN.
11 meneos
316 clics
Anatomía de un teclado mecánico [ENG]

Anatomía de un teclado mecánico [ENG]  

Los teclados normales generalmente se llaman teclados de 'membrana' porque tienen una capa de goma que se encuentra entre la tecla que presiona y el circuito del teclado. Esta capa tiene una cúpula de goma con un contacto metálico que se encuentra debajo de cada tecla. En lugar de goma, los interruptores de los teclados mecánicos están hechos de partes mecánicas móviles. Estos interruptores se sueldan directamente a la placa de circuito en lugar de pasar por encima de dicha placa como el contacto metálico en la cúpula de goma.
9 meneos
484 clics
Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

Peculiaridades de TypeScript: cómo sus inconsistencias hacen que el lenguaje sea más complejo [ENG]

TypeScript tiene un gran número de casos especiales y sorpresas en el compilador que dejan a los ingenieros rascándose la cabeza desconcertados. Mientras que estos comportamientos de forma individual no son muy perjudiciales, como un todo pueden hacer que sea más difícil para nuevos ingenieros formar un modelo mental en torno a este lenguaje. Aquí están tres de mis peculiaridades favoritas de TypeScript que hacen que los nuevos ingenieros se frustren continuamente.
10 meneos
392 clics
Promedio de carga (load average) de Linux: resolviendo el misterio [ENG]

Promedio de carga (load average) de Linux: resolviendo el misterio [ENG]

El promedio de carga (load average) es una métrica importante en la industria. Mi empresa gasta millones en instancias en la nube basándose en esta y otras medidas, pero en Linux hay algo de misterio en torno a ella. El load average en Linux no sólo mide tareas ejecutables, sino que también mide tareas en el estado de sueño ininterrumpido. ¿Por qué? Nunca he visto una explicación, por lo que en este artículo voy a resolver este misterio además de mostrar algunos valores como referencia para todo el mundo cuando trata de interpretarlos.
11 meneos
119 clics
DwarFS, un sistema de archivos diseñado para reducir los datos redundantes

DwarFS, un sistema de archivos diseñado para reducir los datos redundantes

Marcus Holland-Moritz (un inginerio de software de Facebook) dio a conocer mediante una publicacion las primeras versiones de DwarFS, un sistema de archivos de solo lectura diseñado para maximizar la compresión y reducir los datos redundantes. Este sistema de archivos usa el mecanismo FUSE y se ejecuta en el espacio del usuario, el código está escrito en C++ y se distribuye bajo la licencia GPLv3. DwarFS se asemeja a los sistemas de archivos como SquashFS, cramfs y CromFS en sus tareas , y se puede usar para crear imágenes en vivo y reducir el tamaño de archivos con una gran cantidad de duplicados y datos duplicados (por ejemplo, almacenamiento de imágenes de máquinas virtuales).
10 meneos
225 clics

Cómo auditar SSH tanto en servidores como en clientes en sistemas Linux/UNIX [ENG]

Todos los desarrolladores y usuarios de Unix saben cómo utilizar un cliente ssh. OpenSSH es una implementación ampliamente utilizada del protocolo de comunicación de Internet Secure Shell (SSH). En los viejos tiempos, la gente de Unix usaba Telnet, que era inseguro. Por otro lado, SSH permite intercambiar datos utilizando un canal seguro entre dos hosts. Por lo tanto, todos los servidores Linux y Unix que se ejecutan en la nube o en el hogar necesitan un servidor OpenSSH para la administración y la automatización de TI.
12 meneos
147 clics
Examinando btrfs, el sistema de archivos perpetuamente a medio terminar de Linux [ENG]

Examinando btrfs, el sistema de archivos perpetuamente a medio terminar de Linux [ENG]

Btrfs, abreviatura de “B-Tree File System” y frecuentemente pronunciado “butter” o “butter eff ess”, es el sistema de archivos más avanzado presente en Linux. De alguna manera, btrfs busca suplantar ext4, el sistema de archivos predeterminado para la mayoría de las distribuciones de Linux. Pero btrfs también tiene como objetivo proporcionar funciones de próxima generación que rompan el molde simple del "sistema de archivos", combinando la funcionalidad de un administrador RAID, un administrador de volúmenes y más.
11 meneos
243 clics
En contra del formato Markdown [ENG]

En contra del formato Markdown [ENG]

Markdown es este lenguaje de marcado ligero. Todo el mundo (relativamente; entre programadores, escritores y otros "usuarios avanzados") lo utiliza. Los LLM lo usan. Así que está destinado a comerse el mundo. Pero eso no significa que Markdown sea bueno. Ya he criticado a Markdown antes. Pero ese texto no envejeció bien, por razones no relacionadas con Markdown. Así que decidí que mi aversión por Markdown debería tener un nuevo hogar literario. Aquí hay razones por las que no me gusta este lenguaje de marcado incompleto y con fugas.
7 meneos
140 clics

Gestionando equipos remotos: cómo comenzar [ENG]

Digamos que estás gestionando una empresa convencional y que quieres experimentar con el trabajo remoto. Tienes un equipo sin experiencia en este tipo de trabajo pero, bueno, no puede ser tan difícil, ¿verdad? Puedes tener la tentación de decir: “bien, a partir de ahora, cualquiera puede trabajar desde su casa”. Resiste la tentación. Antes de decirle a la gente que puede trabajar de forma remota tienes que estar seguro de puedes gestionarlo.
6 meneos
49 clics
Código de conducta para el desarrollo de software abierto [ENG]

Código de conducta para el desarrollo de software abierto [ENG]

Este código de conducta resume nuestras expectativas para con los participantes dentro de la comunidad Atom así como medidas para la presentación de informes sobre comportamiento inaceptable. Nos comprometemos a proporcionar una comunidad acogedora e inspiradora para todos y esperamos que nuestro código de conducta sirva para ser honrado. Cualquier persona que viole el código de conducta puede ser expulsado de la comunidad.
6 meneos
100 clics
Construyamos un intérprete simple de un lenguaje de programación (Parte 1) [ENG]

Construyamos un intérprete simple de un lenguaje de programación (Parte 1) [ENG]

Realmente no importa si eres novato o desarrollador de software con experiencia: si no sabes cómo funcionan los compiladores e intérpretes, no sabes cómo funcionan los ordenadores. Es así de simple. Así que, ¿sabes cómo los compiladores e intérpretes funcionan? Quiero decir, ¿estás 100 % seguro de que sabes cómo lo hacen? Pero no te preocupes. Si sigues esta serie y construyes un intérprete y un compilador conmigo, aprenderás cómo funcionan. Al menos eso espero.
6 meneos
81 clics
Construyamos un intérprete simple de un lenguaje de programación (Parte 2) [ENG]

Construyamos un intérprete simple de un lenguaje de programación (Parte 2) [ENG]

La lección aprendida del libro “The 5 Elements of Effective Thinking”, donde un virtuoso de la trompeta da una clase donde pide que se toquen notas complejas —sus alumnos lo hacen bien— y luego notas simples —donde sus alumnos no lo hacen tan bien—, aplicada al software es que para llegar a ser un profesional no sólo hay que conocer las herramientas más complejas, sino también los principios más simples que hacen funcionar dichas herramientas. Ahora, sigamos con el desarrollo de nuestro intérprete. [1ª parte: menea.me/1gqb8 ]
8 meneos
132 clics

Tutorial para diseñar una CPU básica [ENG]

Siguiendo este tutorial podrás diseñar una CPU básica para la que podrás escribir su propio ensamblador. Luego podrás ir a presumir delante de tus amigos de lo bueno que eres.
6 meneos
48 clics

DMD, el compilador de referencia de D, ya está totalmente escrito en D [ENG]

DMD, el compilador de referencia del lenguaje de programación D, estaba escrito en C++ desde sus inicios. Pero una vez que el lenguaje se ha ido estabilizando, este compilador ha sido totalmente reescrito en el propio lenguaje, algo que se conoce como self-hosted compiler. [Enlace directo al pull request de GitHub: github.com/D-Programming-Language/dmd/pull/4923 ]
7 meneos
56 clics

Portando Linux a una nueva arquitectura, parte 2: el código inicial [ENG]

En la primera parte de esta serie (www.meneame.net/m/SysDevs/portando-linux-nueva-arquitectura-parte-1-ba ) hemos sentado las bases para portar Linux a una nueva arquitectura de procesador explicando los pasos preliminares (sin llegar a escribir ningún código fuente). Este artículo continúa desde allí profundizando en el código de arranque, lo que incluye desde el código necesario para arrancar Linux hasta la creación del primer hilo del kernel.
6 meneos
104 clics

Ocho trucos de GNU/GDB que deberías conocer [ENG]

A pesar de su edad, GDB sigue siendo una herramienta increíblemente versátil y flexible, y dominarla le puede ahorrar enormes cantidades de tiempo al tratar de depurar errores en el código. En esta entrada se compartirán 10 consejos y trucos para usar GDB para depurar de manera más eficiente.
6 meneos
212 clics
smallpt: iluminación global en 99 líneas de código C++ [ENG]

smallpt: iluminación global en 99 líneas de código C++ [ENG]  

smallpt es un procesador de iluminación global. Está escrito en 99 líneas de C++, es de código abierto y crea la escena mostrada en la imagen utilizando el algoritmo Monte Carlo de trazado de trayectorias.
7 meneos
88 clics

Introducción a Brotli, un nuevo algoritmo de compresión para Internet [ENG]

En Google creemos que el tiempo de los que los usuarios de Internet es útil y que no deberían tener que esperar mucho tiempo para que una página web cargue. Porque rápido es mejor que lento, hace dos años publicamos el algoritmo de compresión Zopfli. Este recibió una respuesta positiva en la industria que se ha integrado en muchas soluciones de compresión. Sobre este algoritmo y otras necesidades de compresión modernas, hoy estamos muy contentos de anunciar que hemos desarrollado y abierto un nuevo algoritmo de compresión para la web: Brotli.
8 meneos
187 clics

Las seis etapas de la depuración de programas informáticos [Humor] [ENG]

Las seis etapas de la depuración: 1. Esto no puede ocurrir. 2. Esto no ocurre en mi máquina. 3. Esto no debería ocurrir. 4. ¿Por qué ocurre esto? 5. Oh, lo veo. 6. ¿Cómo ha podido estar funcionando esto?
7 meneos
143 clics
Pinguy Builder, la herramienta definitiva para crear tu propia distribución de Linux

Pinguy Builder, la herramienta definitiva para crear tu propia distribución de Linux

Aunque existen muchas herramientas para crear tu propio pendrive de instalación o tu DVD de instalación de Linux, la verdad es que existen pocas herramientas que te permitan ir más allá y crear tu propia distribución de Linux personalizada. Una de las herramientas más famosas es Linux From Scratch pero para usarlo hay que tener conocimientos muy avanzados de Gnu/Linux. Hace poco apareció una herramienta que no necesitaba tantos conocimientos pero tampoco lo puede usar un novato, es una herramienta llamada Pinguy Builder.
7 meneos
135 clics
Seis tipografías monoespaciadas para programar y para el terminal en Fedora [ENG]

Seis tipografías monoespaciadas para programar y para el terminal en Fedora [ENG]  

Debido a que pasan la mayor parte de sus días usando terminales o editores, la mayoría de los administradores de sistemas y desarrolladores son bastante exigentes cuando se trata de elegir una tipografía monoespaciada para su uso. En esta entrada se muestran cinco tipografías monoespaciadas que se pueden instalar fácilmente desde los repositorios oficiales de Fedora para que los editores de texto y/o los terminales tengan una interfaz un poco más agradable.
8 meneos
198 clics
Las principales 25 herramientas de monitorización de rendimiento y de depuración en Linux [ENG]

Las principales 25 herramientas de monitorización de rendimiento y de depuración en Linux [ENG]

He compilado 25 herramientas de monitorización de rendimiento y depuración que son útiles cuando se está trabajando en entornos Linux. Esta lista no es completa, sin embargo tiene suficientes herramientas como para que se pueda probar y elegir las adecuadas en cada situación.

menéame