vSMTP un servidor de correo que promete ser más rápido, más seguro y más ecológico

Hace algunos días se presentó el desarrollo de un nuevo proyecto llamado «vSMTP» el cual está desarrollando un nuevo servidor de correo (MTA) destinado a proporcionar un alto rendimiento y ofrecer opciones flexibles para el filtrado y la gestión del tráfico.

vSMTP se está desarrollando con un enfoque principal en la alta seguridad, que se logra a través de pruebas exhaustivas con pruebas estáticas y dinámicas, así como el uso del lenguaje Rust, que, si se usa correctamente, evita muchos errores relacionados con la memoria. Los archivos de configuración se definen en formato TOML.

Si bien la optimización de los recursos de TI se convierte en un desafío cada vez mayor, los ataques informáticos siguen siendo un problema constante.

Todos los días, se envían y reciben más de 300 mil millones de correos electrónicos en el mundo. Miles de millones de archivos adjuntos se procesan, analizan y entregan, lo que contribuye al aumento de las emisiones de gases de efecto invernadero.

Para enfrentar estos desafíos, viridIT está desarrollando una nueva tecnología de puertas de enlace de correo electrónico, también llamada vSMTP.

Según los resultados de las pruebas publicadas por los desarrolladores, vSMTP es diez veces más rápido que los MTA de la competencia. Por ejemplo, vSMTP mostró un rendimiento de 4 a 13 veces mayor que Postfix 3.6.4 al enviar mensajes de 100 KB y establecer de 4 a 16 sesiones simultáneas. El alto rendimiento se logra mediante el uso de una arquitectura de subprocesos múltiples, en la que se utilizan canales asíncronos para comunicarse entre subprocesos.

Una característica del proyecto es también la presencia de un lenguaje vSL incorporado para escribir scripts para filtrar mensajes, lo que le permite crear reglas muy flexibles para filtrar contenido no deseado y controlar el tráfico.

De las características que se destacan, se mencionan las siguientes:

  • Está construido 100% en Rust.
  • Es modular y altamente personalizable.
  • Tiene un completo sistema de filtrado.
  • Se desarrolla y mantiene activamente.

Ademas de ello tambien se menciona que vSMTP permite crear un conjunto complejo de reglas para filtrar sus correos electrónicos utilizando el lenguaje de secuencias de comandos (vsl) de Viridit basado en Rhai

Con vSMTP se puede:

  • inspeccionar/modificar el contenido de los correos electrónicos entrantes.
  • reenviar y entregar correos electrónicos de forma local o remota.
  • conectarse a bases de datos.
  • ejecutar comandos.
  • correos electrónicos en cuarentena.
  • y mucho más.

El idioma se basa en el idioma Rhai, que utiliza escritura dinámica, permite que el código se incruste en los programas de Rust y proporciona una sintaxis que se asemeja a una mezcla de JavaScript y Rust.

Los scripts se proporcionan con una API para inspeccionar y modificar los mensajes entrantes, reenviar mensajes y administrar su entrega a hosts locales y remotos. Los scripts admiten la conexión al DBMS, la ejecución de comandos arbitrarios y la colocación de mensajes en cuarentena. Además de vSL, vSMTP también es compatible con SPF y filtros basados ​​en listas de retransmisión abiertas para combatir el spam.

Cabe mencionar que de los planes para una versión futura se menciona la posibilidad de integración con un DBMS basado en SQL (ya que por el momento la dirección y los datos del host se especifican en formato CSV).

Otro de los cambios que se espera implementar es el soporte para DANE (Autenticación de entidades nombradas basada en DNS) y DMARC (Mensaje basado en dominio). Ademas de que tambien se tiene planeado implementar diversos mecanismos de autenticación.

En cuanto a los planes a mayor plazo (en versiones más lejanas), se planea implementar mecanismos BIMI (Brand Indicators for Message Identification) y ARC (Authenticated Received Chain), la capacidad de integración con Redis, Memcached y LDAP, herramientas para proteger contra bots DDoS y SPAM, complementos para organizar comprobaciones en paquetes antivirus (ClamAV, Sophos, etc.).

Finalmente para quienes estén interesados en poder conocer más sobre este nuevo proyecto, deben saber que el código del proyecto está escrito en Rust y se distribuye bajo la licencia GPLv3.

Pueden consultar el código fuente del proyecto asi mismo como su documentación y demás información en el siguiente enlace. En cuanto a la instalación y configuración, pueden consultar la documentación ofrecida en el siguiente enlace.

from Linux Adictos https://ift.tt/KZw6p8D
via IFTTT

Qt Creator 8 ya fue liberado y estas son sus novedades

The Qt Company dio a conocer recientemente el lanzamiento de la nueva versión de «Qt Creator 8», versión que llega con nuevos complementos, mejoras y más.

Para quienes desconocen de Qt Creator, deben saber que este es un IDE multiplataforma que viene con el SDK Qt, el cual proporciona un desarrollo de aplicaciones multiplataforma rápido y fácil, ademas de que permite a los desarrolladores crear aplicaciones en plataformas integradas, móviles y de escritorio.

Principales novedades de Qt Creator 8

En esta nueva versión que se presenta del IDE QT Creator 8 se destacan diversos cambios de los cuales por ejemplo se encuentra que se para C++ de ha desactivado el antiguo modelo de código C++ implementado sobre la base de libclang, en lugar del cual, a partir de la rama anterior, el modelo predeterminado se basa en el backend Clangd que admite el protocolo LSP (Language Server Protocol).

Se menciona tambien que siempre puede activar y usar Clangd de todos modos, pero se debe tener en cuenta que Clangd consume comparativamente muchos recursos.

Para el lenguaje Python, por defecto, el servidor de soporte de lenguaje python-lsp-server está habilitado, para el cual se ofrece una sección separada de la configuración «Python > Configuración del servidor de lenguaje».

Otro de los cambios que se destaca de esta nueva versión de QT Creator 8 es que se implementó una nueva plantilla de configuración de «Perfil» para los proyectos de CMake, que combina el tipo de compilación «RelWithDebInfo» con la inclusión de herramientas de depuración y creación de perfiles.

Mientras que para QML se menciona que se solucionó el manejo de las plantillas de cadena de JavaScript y los problemas con el operador «??=» (de fusión nula). Al seguir un símbolo, podría suceder que Qt Creator abriera el archivo QML correspondiente desde el directorio de compilación en lugar del directorio de origen, que ahora debería estar arreglado.

De los demás cambios que se destacan de esta nueva versión:

  • Se ha agregado un complemento experimental compatible con el kit de herramientas de prueba de cobertura de Coco.
  • Se agregó soporte experimental para la integración de GitLab, lo que le permite ver y clonar proyectos, cargar código y recibir notificaciones de eventos.
  • Se eliminó la compatibilidad con la plataforma UWP (Universal Windows Platform).
  • En la plataforma Windows, se proporciona la definición de instrumentación ARM MSVC.
  • Se agregó una opción para que Android se conecte a dispositivos a través de Wi-Fi.
  • Se ha agregado el elemento de menú «Editar> Preferencias» para navegar rápidamente a la configuración.
  • También se realizaron mejoras en el rendimiento de la generación de compile_command.json que está destinada para Clangd y ademas se solucionaron muchos otros problemas.

Finalmente, si quieres conocer más al respecto sobre esta nueva versión pueden consultar el anuncio original en el siguiente enlace.

Obtener Qt Creator 8.0

Para quienes estén interesados, deben saber que la versión de código abierto está disponible en la página de descarga de Qt en «Qt Creator», mientras que para los interesados en la versión comercial podrán encontrar la licencia comercial en el portal de cuentas de Qt.

Para el caso de los que utilizamos Linux, podremos realizar la instalación con ayuda del instalador que se ofrece de manera general para Linux. Para obtener el paquete offline, basta con abrir una terminal y ejecutar el siguiente comando:

wget https://download.qt.io/official_releases/qtcreator/8.0/8.0.0/qt-creator-opensource-linux-x86_64-8.0.0.run

Ahora simplemente basta con dar permisos de ejecución al archivo con el siguiente comando:

sudo chmod +x qt-creator-opensource-linux-x86_64-8.0.0.run

Y ahora podremos ejecutar el instalador en nuestro sistema, para ello debemos de teclear el siguiente comando:

./qt-creator-opensource-linux-x86_64-8.0.0.run

Al finalizar la instalación, debemos de instalar algunos paquetes adicionales para no tener problemas al momento de trabajar con Qt Creator, para ello sobre la misma terminal vamos a teclear los siguientes comandos:

sudo apt-get install build-essential

Y también debemos de instalar librería de configuración de fuentes genéricas:

sudo apt-get install libfontconfig1
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y

O para el caso de quienes prefieren esperar a que el paquete esté listo en los repositorios de Ubuntu y derivados, pueden instalar el paquete con el siguiente comando:

sudo apt install qtcreator

from Linux Adictos https://ift.tt/Qgl2FdD
via IFTTT

MongoDB 6.0 llega con mejoras, nuevas funciones y mas

Luego de un año de desarrollo se dio a conocer el lanzamiento de la nueva versión de MongoDB 6.0, en la cual en el anuncio se menciona que los cambios más destacados de esta versión incluyen mejoras en las series temporales, nueva funcionalidad y mejoras de rendimiento para cambiar flujos, entre otras cosas más.

Para quienes desconocen de MongoDB, deben saber que esta es una base de datos que admite el almacenamiento de documentos en un formato similar a JSON, tiene un lenguaje bastante flexible para generar consultas, puede crear índices para varios atributos almacenados, proporciona almacenamiento eficiente de objetos binarios grandes, admite el registro de operaciones para cambiar y agregar datos a la base de datos, puede trabajar de acuerdo con el paradigma Map/Reduce, admite la replicación y la construcción de configuraciones tolerantes a fallas.

Principales novedades de MongoDB 6.0

En esta nueva versión que se presenta de MongoDB 6.0 se implementó la capacidad de ejecutar consultas que cubren los datos almacenados en forma cifrada (Queryable Encryption). Los datos se descifran por parte del usuario y permanecen cifrados durante el procesamiento de la solicitud (la solicitud se realiza sobre datos cifrados, sin descifrarlos primero).

En su forma actual, solo se permiten expresiones de comparación en las consultas, pero en el futuro se planea agregar soporte para verificar rangos, prefijos, sufijos, subcadenas y otras operaciones.

Otro de los cambios que se destaca de esta nueva versión de MongoDB 6.0 es que se han ampliado las posibilidades asociadas al almacenamiento de datos en forma de series temporales (time series collections), las cuales están optimizadas para almacenar porciones de valores de parámetros registrados en determinados intervalos de tiempo (tiempo y un conjunto de valores correspondientes a esta vez), por ejemplo, surge la necesidad de almacenar dichos datos en sistemas de monitoreo, plataformas financieras, sistemas para sondear los estados de los sensores.

La nueva versión ofrece la posibilidad de utilizar índices secundarios y compuestos con colecciones de datos en forma de series temporales.

Por otra parte, tambien se destaca las nuevas herramientas para el seguimiento de cambios («cambio de flujos», API Change Streams), con la ayuda de las cuales puede organizar el envío de notificaciones a aplicaciones sobre cambios de datos en la base de datos. Los cambios se informan en tiempo real y le permiten crear aplicaciones utilizando técnicas de programación reactivas y basadas en eventos. Los eventos se procesan con el método de observación; si es necesario, los eventos se pueden filtrar y agregar con los operadores $match, $project y $redact. La nueva versión ofrece la posibilidad de obtener el estado anterior y posterior del documento (por ejemplo, cuando se elimina o cambia el documento). Además de las operaciones del lenguaje de manipulación de datos (DML), se proporciona soporte para operaciones DDL (lenguaje de definición de datos), como la creación y eliminación de índices y colecciones.

Ademas de ello, tambien sé destaca que los operadores $lookup y $graphlookup son totalmente compatibles con el almacenamiento fragmentado. El rendimiento de la operación $lookup se ha optimizado, por ejemplo, cuando hay un índice en una clave externa, la coincidencia de una pequeña cantidad de documentos ahora es de 5 a 10 veces más rápida y una gran cantidad es el doble de rápida. Para asignaciones sin usar índices, la ganancia de rendimiento puede ser de hasta 100x.

De los demás cambios que se destacan de esta nueva versión:

  • Se proporciona la capacidad de ejecutar consultas analíticas complejas en porciones consistentes (instantáneas) del estado de los datos de producción.
  • Las consultas analíticas como esta pueden abarcar múltiples fragmentos en grandes configuraciones distribuidas de MongoDB.
  • Se agregaron nuevos operadores $maxN, $minN y $lastN para determinar los valores en un conjunto de datos, así como el operador $sortArray para ordenar los elementos de la matriz.
  • La eficiencia de la segmentación se ha mejorado significativamente.
  • El tamaño de bloque predeterminado para una colección fragmentada se ha aumentado a 128 MB.
  • Se agregó el comando configureCollectionBalancing para desfragmentar una colección fragmentada.
  • Se ha agregado compatibilidad con proveedores de claves compatibles con KMIP al cifrado de nivel de campo del lado del cliente (CSFLE).
  • Se agregó la capacidad de comprimir y cifrar el registro de auditoría, que refleja la actividad de los usuarios de DBMS.
  • Se ha implementado un modo de sincronización de datos experimental entre clústeres de MongoDB (Cluster-to-Cluster Sync).
  • Se agregó soporte para adjuntar datos adicionales, como información geográfica para tener en cuenta la distancia y la ubicación.
  • Rendimiento mejorado para leer, consultar y ordenar.

Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/xnTj9Ya
via IFTTT