openSUSE dice que tambien brindara soporte para Nim

opensuse logo

Los desarrolladores de la distribución openSUSE dieron a conocer hace pocos días mediante un anuncio el inicio del soporte inicial para paquetes relacionados con el lenguaje de programación Nim, siendo de esta forma openSUSE se une al proyecto de código abierto Arch Linux para tener paquetes actualizados para el lenguaje Nim.

El soporte principal significa la generación periódica y rápida de actualizaciones correspondientes a las versiones actuales de Nim. El lenguaje de programación compilado brinda a los programadores eficiencia en el tiempo de ejecución y combina conceptos exitosos de lenguajes maduros como Python, Ada y Modula.

“El software real se ejecuta sin un sistema operativo, pero si el suyo necesita uno, elija uno que ofrezca compatibilidad con Nim de primera clase. Como lo hace SUSE”. , dijo el creador del lenguaje de programación Nim, Andreas Rumpf, cuando se le preguntó acerca de la compatibilidad de openSUSE con Nim actualizado a partir de ahora.

Para quienes desconocen de este lenguaje de programación, les puedo decir que Rumpf creó Nim en 2005 y uno de los puntos fuertes de Nim, además del sistema de macros y la eficiencia del tiempo de ejecución, es su biblioteca estándar, que es similar a otros lenguajes y cubre la mayoría de las funciones estándar; estos incluyen manejo y formato de cadenas, desarrollo de código asíncrono, redes e incluso funcionalidad de lenguaje de alto nivel (como el propio compilador) o NimScript, que es un subconjunto de Nim especialmente diseñado para secuencias de comandos que se pueden incrustar y ejecutar en tiempo de ejecución.

El lenguaje Nim está enfocado a resolver problemas de programación de sistemas, usa tipado estático y fue creado con la vista puesta en Pascal, C++, Python y Lisp.

El código fuente de Nim se compila en una representación C, C++, Objective-C o JavaScript. Posteriormente, el código C/C++ resultante se compila en un archivo ejecutable utilizando cualquier compilador disponible (clang, gcc, icc, Visual C++), lo que permite lograr un rendimiento cercano a C, esto claro, si dejamos de lado los recursos utilizados por el recolector de basura.

“Estoy muy emocionado de tener la primera distribución de Linux que anuncia soporte de primera clase para Nim”, dijo Dominik Picheta , desarrollador principal de Nim y autor del libro Nim in Action . “Espero que esto abra la puerta para que otras distribuciones hagan lo mismo”.

Similar a Python, Nim usa sangría como separadores de bloques, ademas de que admite herramientas de metaprogramación y capacidades para crear lenguajes específicos de dominio (DSL).

Además, Nim viene con una amplia gama de herramientas incluidas de forma predeterminada. El compilador permite la orientación de C, C++ y Javascript como backend. Hay algunas herramientas incluidas para facilitar el desarrollo:

  • nim compiler
  • nimsuggest (soporte para sugerencias de idiomas, autocompletado, detección de errores/problemas, etc.)
  • nimgrep (una poderosa alternativa de grep con soporte integrado de Nim para encontrar símbolos e inspeccionar las bases de código de Nim).
  • nim-gdb wrapper (soporte gdb para tipos Nim)
  • nimble (gestor de paquetes)

Actualmente hay paquetes de Nim creados para x86-64, i586, ppc64le y ARM64 con openSUSE, ademas hay pruebas automatizadas para compilaciones de openSUSE. Por lo general, la disponibilidad de Nim con openSUSE implica la transmisión ascendente de pruebas rotas para arquitecturas específicas junto con el respaldo y la transmisión ascendente de parches de seguridad.

Nim tiene un ecosistema de paquetes muy interesante y vibrante para un fácil desarrollo en muchos frentes; desde desarrollo web hasta programación de sistemas y ciencia hasta procesamiento de datos, por nombrar algunos. Es posible desarrollar aplicaciones paralelas y extremadamente rápidas con Weave , desarrollar aplicaciones web de front-end y back-end completamente en Nim con Karax o Jester y realizar operaciones matemáticas computacionales pesadas con ArrayMancer.

Finalmente cabe mencionar que los paquetes se generarán para las arquitecturas x86-64, i586, ppc64le y ARM64 y se probarán con los sistemas de prueba automatizados de openSUSE antes de su publicación.

Si quieres conocer más al respecto sobre la nota, puedes consultar los detalles en la publicación original en el siguiente enlace.

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

GameMode 1.7 ya fue liberado y llega corrigiendo errores y mas

Después de poco más de un año desde el lanzamiento de la versión anterior, Feral Interactive dio a conocer recientemente el lanzamiento de la nueva versión del optimizador «GameMode 1.7», siendo este un lanzamiento menor que solo llega a cubrir las correcciones de errores reportados hasta el momento y actualizaciones de la documentación, ademas de añadir un puñado de cambios.

Para quienes desconocen de GameMode, deben saber que esta es una herramienta que se implementa como un proceso en segundo plano que cambia varias configuraciones del sistema Linux sobre la marcha para lograr el máximo rendimiento de la aplicación de juego.

Para los juegos, se propone utilizar la biblioteca especial libgamemode, que permite solicitar la inclusión de ciertas optimizaciones que no se utilizan por defecto en el sistema en el momento de la ejecución del juego. También hay una opción de biblioteca disponible para ejecutar el juego en modo de optimización automática (cargando libgamemodeauto.so a través de LD_PRELOAD al iniciar el juego), sin necesidad de realizar cambios en el código del juego. La inclusión de ciertas optimizaciones se puede controlar a través del archivo de configuración.

Por ejemplo, con GameMode, se pueden desactivar los modos de ahorro de energía, se pueden cambiar los parámetros de asignación de recursos y programación de tareas (gobernador de CPU y SCHED_ISO), se pueden reorganizar las prioridades de entrada/salida, se bloquea el inicio del protector de pantalla, se habilitan varios modos de rendimiento mejorados en las GPU NVIDIA y AMD, y en las GPU NVIDIA están overclockeadas ejecuten scripts con optimizaciones definidas por el usuario.

Principales novedades de GameMode 1.7

Tal y como se mencionó al principio esta nueva versión 1.7, es una actualización menor que llega principalmente para solucionar diversos errores y fallos detectados que se han acumulado desde el año pasado.

Pero dentro de los cambios que presenta se destaca una nueva utilidad llamada «gamemodelist,» que permite ver una lista de procesos asociados con los juegos que se ejecutan utilizando la biblioteca compartida de GameMode.

Otro de los cambios que se presenta de esta nueva versión, es que en lugar de estar vinculadas a /usr/bin, las rutas a los archivos ejecutables ahora se definen a través de la variable de entorno PATH.

Para sysusers.d tambien se destaca que se implementa el archivo de configuración gamemode.conf, que crea un grupo separado para GameMode.

¿Cómo instalar GameMode en Linux?

GameMode básicamente es un servicio (daemon) y una librería con lo cual, este combo se encarga de realizar los cambios pertinentes en el sistema.

Para poder instalar GameMode en Linux, primero debemos de instalar algunas dependencias necesarias para su funcionamiento y así evitar tener problemas con el script de instalación de la herramienta y estar liados en solucionarlos.

En el caso de los que son usuarios de Debian, Ubuntu, Linux Mint así como alguna otra distribución derivada de estas. Vamos a instalar las dependencias necesarias desde una terminal, en la cual vamos a ejecutar el siguiente comando:

sudo apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev dbus-user-session

Ahora en el caso de los que son usuarios de Arch Linux, Manjaro, Arco o cualquier otro derivado de la distribución. En una terminal vamos a teclear lo siguiente:

sudo pacman -S meson systemd git dbus

Mientras que para quienes utilizan Fedora o cualquier otra distribución derivada de esta:

sudo dnf install meson systemd-devel pkg-config git dbus-devel

Para el caso de Gentoo podremos instalar las dependencias necesarias con:

emerge --ask games-util/gamemode

En el caso de Solus, pueden instalar el paquete y todo lo necesario desde el centro de software. 

Ya con las dependencias instaladas, ahora vamos a proceder a obtener el script de instalación de GameMode para poder ejecutarlo y se instale en nuestro sistema.

Para esto, solo debemos abrir una terminal y en ella tecleamos los siguientes comandos:

git clone https://github.com/FeralInteractive/gamemode.git
cd gamemode
git checkout 1.7
./bootstrap.sh

Y listo con ello ya tenemos instalado el servicio. Pero ahora toca saber como llamar a ese servicio para que ejecute cuando vamos a correr algún juego en nuestro sistema.

Finalmente si quieres conocer más al respecto sobre esta herramienta, puedes consultar el siguiente enlace.

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

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