CodeNet, un proyecto de IBM para sistemas de aprendizaje automático 

IBM logo

IBM dio a conocer recientemente su nuevo proyecto llamado «CodeNet» el cual tiene como objetivo proporcionar a los investigadores un conjunto de datos para experimentar con el uso de técnicas de aprendizaje automático para crear traductores de un lenguaje de programación a otro, así como generadores y analizadores de código.

CodeNet incluye una colección de 14 millones de ejemplos de código que resuelven 4053 problemas de programación comunes. En total, la colección contiene alrededor de 500 millones de líneas de código y cubre 55 lenguajes de programación, tanto lenguajes modernos como C++, Java, Python y Go, como heredados, incluidos COBOL, Pascal y FORTRAN.

«El software se está comiendo el mundo», escribió el famoso empresario estadounidense Marc Andreessen en 2011. Un avance rápido hasta el día de hoy: el software se encuentra en servicios financieros y atención médica, teléfonos inteligentes y hogares inteligentes. Incluso los automóviles ahora tienen más de 100 millones de líneas de código.

Los desarrollos del proyecto se distribuyen bajo la licencia Apache 2.0 y se prevé que los conjuntos de datos se distribuyan en forma de dominio público.

Los ejemplos están anotados e implementan algoritmos idénticos en diferentes lenguajes de programación. Se supone que el conjunto propuesto ayudará a entrenar sistemas de aprendizaje automático y desarrollar innovaciones en el campo de la traducción y el análisis automático de código, por analogía con la forma en que la base de datos ImageNet de imágenes anotadas ayudó al desarrollo de sistemas de reconocimiento de imágenes y visión artificial. Varios concursos de programación se mencionan como una de las principales fuentes de formación de colecciones.

Project CodeNet específicamente puede impulsar la innovación algorítmica para extraer este contexto con modelos secuencia a secuencia, al igual que lo que hemos aplicado en los lenguajes humanos, para hacer una mella más significativa en la comprensión de la máquina del código en lugar del procesamiento de la máquina del código.

A diferencia de los traductores tradicionales basados ​​en reglas de traducción, los sistemas de aprendizaje automático pueden capturar y tener en cuenta el contexto del uso del código. Al convertir de un lenguaje de programación a otro, el contexto es tan importante como al traducir de un lenguaje humano a otro. Es la falta de conciencia contextual lo que evita que el código se convierta de lenguajes heredados como COBOL.

La presencia de una gran base de implementaciones de algoritmos en varios lenguajes ayudará a crear sistemas universales de aprendizaje automático que, en lugar de traducción en vivo entre lenguajes específicos, manipulen una representación más abstracta del código, independiente de lenguajes de programación específicos.

Dicho sistema se puede utilizar como un traductor que traduce el código transmitido en cualquiera de los idiomas admitidos a su representación abstracta interna, a partir de la cual se puede generar código en muchos idiomas.

Incluyendo el sistema podrá realizar transformaciones bidireccionales. Por ejemplo, los bancos y las agencias gubernamentales continúan utilizando proyectos COBOL heredados. Un traductor de aprendizaje automático puede convertir el código COBOL a la representación de Java y, opcionalmente, traducir un fragmento de Java de nuevo al código COBOL.

Además de la traducción entre idiomas, se mencionan áreas de aplicación de CodeNet como la creación de sistemas de búsqueda de códigos inteligentes y la automatización de la detección de clones, así como el desarrollo de optimizadores y sistemas para la corrección automática de códigos.

En particular, los ejemplos presentados en CodeNet se proporcionan con metadatos que describen los resultados de las pruebas de rendimiento, el tamaño del programa resultante, el consumo de memoria y el estado que permite distinguir el código correcto del código con errores (para distinguir el código correcto del código incorrecto, ejemplos con errores se incluyen especialmente en la colección, cuya participación es del 29,5%).

Un sistema de aprendizaje automático puede tener en cuenta estos metadatos para generar el código más óptimo o para detectar regresiones en el código analizado (el sistema puede entender que el algoritmo no está implementado de manera óptima en el código transmitido o contiene errores).

Finalmente si estás interesado en conocer más al respecto sobre CodeNet, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/2Qcnje5
via IFTTT

Quadrapassel: una implementación del Tetris para tu Linux

Quadrapassel Tetris Linux

El Tetris fue un videojuego de lógica diseñado por el ruso Alekséi Pázhitnov de la Unión Soviética. Su lanzamiento se produjo en 1984, mientras trabajaba en el Centro de Computación de Dorodnitsyn de la Academia de Ciencias de la Unión Soviética en Moscú.

Su nombre proviene del prefijo griego tetra, ya que las piezas del juegos se conocen como tetrominós. Todos están compuestos por 4 segmentos distribuidos de diferente manera para generar formas diferentes que tendrás que ir colocando para completar líneas y que éstas desaparezcan con el objetivo de no saturar la pantalla…

Creo que la dinámica del juego está bastante vista ya, pero por si hay algún usuario que haya nacido más tarde a este videojuego y aún no lo conocía…

Dicho esto, el videojuego fue tan popular que se transformó en uno de los clásicos más jugados de la historia. Y, a lo largo de la historia, han ido apareciendo muchas implementaciones y variantes de todo tipo. Todas ellas muy adictivas, ya que, pese a la simple dinámica del juego, tiene algo que genera una atracción total.

Su popularidad es tal que se ha implementado para multitud de equpos, desde los Apple II, pasando por los Commodore 64, máquinas Atari, Amiga, Amstrad, ZX Spectrum, hasta nuevos Mac, PCs, videoconsolas antiguas y modernas, dispositivos móviles, para navegadores web, e incluso integrado como huevo de pascua en aparatos como los osciloscopios, para editores como Emacs, etc.

Pues bien, si quieres sentir tú mismo esa esencia que tanto atrae, y si tienes tiempos libres en los que te apetece liberar tu mente del trabajo o de los estudios y echarte una partida a algún videojuego, qué mejor que estos simples. Por eso, deberías conocer Quadrapassel.

Quadrapassel es una nueva implementación del clásico Tetris perteneciente al software de GNOME. Puedes instalarlo fácilmente en tu distro con GNOME, pero también funciona perfectamente en otros entornos de escritorio, simplemente se deberán satisfacer las dependencias de las bibliotecas y funcionarán sin problema alguno.

from Linux Adictos https://ift.tt/3w247yP
via IFTTT

Linus Torvalds habla sobre los usuarios comerciales de código fuente abierto

La semana pasada, Linus Torvalds continuó con una extensa entrevista por correo electrónico con Jeremy Andrews, socio fundador y director ejecutivo de Tag1.

En la primera parte de la entrevista en abril, Torvalds habló de todo, desde los chips ARM64 de Apple y los controladores Rust, hasta su propio entorno de trabajo desde casa basado en Fedora y sus pensamientos sobre los primeros días de Linux. Pero la segunda parte ofrece una visión más profunda de cómo piensa Torvalds, una visión personal de lo que compartiría con otros mantenedores de proyectos y algunas ideas sobre cómo conseguir que las empresas ayuden a hacer crecer el negocio.

Linus reveló cómo procedió cuando comenzó el proyecto:

“Todavía recuerdo los primeros días, cuando la gente me enviaba arreglos, y realmente no los aplicaba como arreglos, pero los leía, que entendía lo que la gente quería hacer y que lo hice yo mismo. Porque así comencé el proyecto, y así me sentí más cómodo y que conocía mejor el código ”. Linus también explicó que era importante aprender a delegar: “Dejé de hacerlo bastante rápido, porque básicamente soy un vago. Me volví muy bueno leyendo los parches y descubriendo lo que estaban haciendo, y luego los apliqué ”.

Linus también se esforzó por permanecer imparcial a medida que Linux crecía y se volvía más exitoso:

“Yo muy conscientemente no quería trabajar para una empresa de Linux, por ejemplo, mantuve Linux durante la primera década sin que fuera mi trabajo. Esto no es porque crea que los intereses comerciales son malos, sino porque quería asegurarme de que la gente me viera como una parte neutral y nunca me sentí como «la competencia». «

Si bien el código abierto ha tenido un gran éxito, muchos de los usuarios más grandes, como las empresas, hacen poco o nada para apoyar o contribuir a los proyectos de código abierto de los que dependen.

Continúa escribiendo:

“Y muchas de las grandes empresas de tecnología que utilizan el kernel terminan participando activamente en el proceso de desarrollo. A veces terminan haciendo mucho trabajo interno y no son muy buenos empujando las cosas hacia atrás (no nombraré nombres, y algunos de ellos realmente están tratando de hacerlo mejor), pero en realidad es muy alentador ver a las grandes empresas que están involucradas de manera muy abierta en el desarrollo básico upstream y son miembros importantes de la comunidad ”.

Cuando se le preguntó si el código abierto es sostenible o no, Linus respondió:

“Sí. Personalmente, estoy 100% convencido de que no solo el código abierto es sostenible, sino que para cuestiones técnicas complejas realmente necesita el código abierto solo porque el espacio del problema termina siendo demasiado complejo para ser manejado por una sola empresa. Incluso una empresa de tecnología grande y competente ”.

Clave para el éxito de los encargados del mantenimiento de proyectos de código abierto: «estar ahí TODO EL TIEMPO» y «estar abierto»

Cuando Andrews quiso saber qué hace que un proyecto de código abierto sea exitoso, Linus admitió:

“Realmente no sé cuál es la clave del éxito. Sí, Linux ha tenido mucho éxito y está claro que Git también ha comenzado con el pie derecho, pero todavía es muy difícil atribuirlo a una causa más profunda. ¿Quizás tuve suerte? ¿O fue porque de todas estas personas que necesitaban estos proyectos, yo fui el que se puso de pie, hizo el trabajo y comencé el proyecto? «

Pero Linus finalmente explicar» algunos puntos prácticos y con los pies en la tierra que yo personalmente considero importante si usted es un fabricante de software de código abierto «. Recomienda que una persona a cargo de un proyecto de código abierto esté «presente» todo el tiempo.

“Tienes que quedarte, tienes que estar ahí para los otros desarrolladores, y tienes que estar ahí TODO EL TIEMPO. Te encontrarás con problemas técnicos y será frustrante. Trabajará con personas que pueden tener ideas muy diferentes sobre cómo resolver estos problemas técnicos. Y los problemas técnicos son la parte más fácil, porque generalmente tienen soluciones técnicas, y a menudo se puede decir de manera bastante objetiva «esto es mejor / más rápido / más fácil / lo que sea» «.

La otra clave que explicó Linus es estar «abierto», «estar abierto a las soluciones de otras personas y no tener esta idea muy clara e inflexible de cómo se deben hacer las cosas». Pero Linus denuncia una de las formas de ser abierto:

“Es realmente fácil crear una especie de ‘camarilla’ de personas, donde tienes una camarilla interna que discute las cosas en privado, y luego realmente solo ves el resultado final (o marginal trabajar) a plena luz del día, porque todas las cosas importantes han sucedido dentro de una empresa o dentro de un grupo central de personas, y a los externos les resulta difícil penetrar estos clics y, a menudo, incluso les cuesta ver lo que está sucediendo en ese grupo principal porque era tan privado y exclusivo ”.

“Esta es una de las razones por las que realmente me gustan las listas de correo abiertas. No es una lista de «invitaciones». Ni siquiera tienes que registrarte para participar. Está realmente abierto. Y prácticamente todas las discusiones sobre desarrollo deberían estar allí ”.

Hablando de otras habilidades específicas necesarias para proyectos exitosos de código abierto, Linus explicó su experiencia. Según él, “no es el resultado de planificar y leer manuales de gestión, etc. La mayoría de las cosas sucedieron solas, y la estructura que tenemos hoy no proviene de un organigrama escrito, sino de personas que acaban de «encontrar su lugar». Como ya se mencionó anteriormente, Linus recomienda la delegación de tareas. También mencionó las habilidades de comunicación como «muy importantes».

Fuente: https://www.tag1consulting.com

from Linux Adictos https://ift.tt/3o6uAZD
via IFTTT

Microsoft, Google y ARM se unen a la Bytecode Alliance para mejorar el desarrollo de WebAssembly

A fines de 2019, en un esfuerzo conjunto para hacer de WebAssembly un runtime de computación multiplataforma, las empresas como Mozilla, Fastly, Intel y Red Hat anunciaron el lanzamiento de Bytecode Alliance. Esta iniciativa construida alrededor de WebAssembly se centra en proporcionar un código de bytes predeterminado seguro que se puede ejecutar desde un navegador web, escritorio o IoT/plataforma incrustada.

WebAssembly ha sido promocionado como una arquitectura de conjunto de instrucciones virtuales con muchos casos de uso capaces de tomar código escrito en lenguajes de programación distintos de JavaScript y ejecutar ese código en una plataforma específica, al menos un navegador en este caso.

Esta solución también debería permitir que aplicaciones complejas, como videojuegos inmersivos en 3D, diseño computarizado o edición de imágenes y videos, funcionen de manera óptima en las plataformas de destino. Gracias a WebAssembly, los desarrolladores podrían, por ejemplo, codificar sus aplicaciones en C, C ++ o Rust y ejecutar estos programas a velocidad nativa en un navegador web, sin tener que volver a pasar por JavaScript con las limitaciones que esto impone.

Según los promotores de la iniciativa, el auge de la nube y los dispositivos IoT está provocando que los desarrolladores ejecuten código poco fiable en nuevos entornos, lo que plantea nuevos problemas, especialmente en términos de seguridad y portabilidad.

Bytecode Alliance deberá proporcionar una base para que los desarrolladores ejecuten con seguridad código no confiable en cualquier infraestructura, sistema operativo y dispositivo. Esta comunidad de código abierto se centrará en configurar un entorno de ejecución y cadenas de herramientas lingüísticas asociadas, incluidas cargo-wasi, wat y wasmparser, que brindan seguridad, eficiencia y modularidad en una amplia gama de arquitecturas y periféricos.

Y ahora se han unido nuevos integrantes de renombre, tales como Microsoft, Arm, DFINITY Foundation, Embark Studios, Google, Shopify y University of California San Diego.

En un comunicado, Bobby Holley, un distinguido ingeniero de Mozilla y miembro de la junta de Bytecode Alliance, describió el desarrollo de software actual como un conjunto de difíciles compensaciones.

“Si desea construir algo grande, no es realista crear todos los componentes desde cero”, dijo Holley. “Pero depender de una compleja cadena de suministro de componentes de otras partes permite que una falla en cualquier parte de esa cadena comprometa la seguridad y estabilidad de todo el programa. Mozilla ayudó a crear WebAssembly para permitir que la web creciera más allá de JavaScript y ejecutara más tipos de software a velocidades más rápidas. Pero a medida que madura Quedó claro que las propiedades técnicas de WebAssembly, en particular el aislamiento de la memoria, también tenían el potencial de transformar el desarrollo de software más allá del navegador. Varias otras organizaciones compartieron este punto de vista y nos unimos para lanzar Bytecode Alliance como una asociación industrial informal a fines de 2019 ”.

“Las herramientas como los contenedores pueden proporcionar cierto grado de aislamiento, pero agregan una sobrecarga sustancial y son inconvenientes de usar con granularidad por parte del proveedor. Y todas estas dinámicas refuerzan las ventajas de las grandes empresas que tienen los recursos para gestionar y auditar cuidadosamente sus cadenas de suministro ”

Además se menciona que los miembros fundadores compartieron un montón de herramientas WASM con Bytecode Alliance, incluidos entornos de tiempo de ejecución, componentes de tiempo de ejecución y más.

Ahora, con Microsoft, Google y Mozilla a bordo, Bytecode Alliance cuenta con el apoyo de tres de los cuatro principales proveedores de navegadores. El editor de Safari Apple es el único proveedor importante de navegadores que falta. Con un apoyo más amplio, la alianza se da a sí misma una mejor oportunidad de supervivencia a largo plazo.

«WebAssembly y la nueva especificación WebAssembly System Interface (WASI) permiten que las soluciones nativas de la nube se vuelvan más seguras de forma predeterminada y ayuden a solucionar problemas de TI en una variedad de entornos», dijo Ralph Squillace, gerente senior de programas de Microsoft en Azure Core Upstream y miembro de la junta de Bytecode Alliance.

El trabajo de Microsoft en WebAssembly incluye su lanzamiento de Blazor WebAssembly, que permite a los desarrolladores de C# y .NET crear aplicaciones que se ejecutan en el navegador con WebAssembly, pero que funcionan como una aplicación de escritorio nativa, también conocida como aplicaciones web progresivas.

Blazor WebAssembly es una de las cuatro versiones del Blazor Project de Microsoft, que incluye la representación de Blazor Server compatible para aplicaciones web, un renderizador Electron y los enlaces experimentales Mobile Blazor recientemente lanzados para crear aplicaciones iOS y nativas de Android usando C # y .NET en lugar de JavaScript.

Fuente: https://bytecodealliance.org

from Linux Adictos https://ift.tt/3o8V10v
via IFTTT

Bottlerocket 1.1.0 llega con Kernel 5.10, SELinux, mejoras y mas

Bottlerocket

Se acaba de dar a conocer la liberación de la nueva versión de la distribución de Linux «Bottlerocket 1.1.0» la cual es desarrollada con la participación de Amazon para ejecutar contenedores aislados de manera eficiente y segura.

La distribución y los componentes de control están escritos en el lenguaje Rust y se distribuyen bajo las licencias MIT y Apache 2.0. Admite la ejecución de Bottlerocket en los clústeres de Amazon ECS y AWS EKS Kubernetes, así como la creación de versiones y revisiones personalizadas que permiten diferentes herramientas de tiempo de ejecución y orquestación de contenedores.

La distribución proporciona una imagen de sistema indivisible actualizada de forma automática y atómica que incluye el kernel de Linux y un entorno de sistema mínimo que incluye solo los componentes necesarios para ejecutar contenedores.

El entorno utiliza el gestor del sistema systemd, biblioteca Glibc, Buildroot, gestor de arranque GRUB, un runtime para containerd, contenedores de la plataforma Kubernetes, AWS-iam-autenticador y el agente de Amazon ECS.

Las herramientas de orquestación de contenedores se envían en un contenedor de administración separado que está habilitado de manera predeterminada y administrado a través de la API y el Agente de AWS SSM. La imagen base carece de un shell de comandos, servidor SSH e idiomas interpretados (por ejemplo, sin Python o Perl): las herramientas para el administrador y las herramientas de depuración se mueven a un contenedor de servicios separado, que está deshabilitado de manera predeterminada.

La diferencia clave con respecto a distribuciones similares como Fedora CoreOS, CentOS/Red Hat Atomic Host es el enfoque principal en proporcionar la máxima seguridad en el contexto de fortalecer el sistema contra posibles amenazas, lo que dificulta la explotación de vulnerabilidades en los componentes del sistema operativo y aumenta el aislamiento de contenedores. Los contenedores se crean utilizando los mecanismos estándar del kernel de Linux: cgroups, namespaces y seccomp.

La partición root se monta como de solo lectura y la partición de configuración /etc se monta en tmpfs y se restaura a su estado original después de reiniciar. No se admite la modificación directa de archivos en el directorio /etc, como /etc/resolv.conf y /etc/containerd/config.toml, para guardar permanentemente la configuración, usar la API o mover la funcionalidad a contenedores separados.

Principales novedades de Bottlerocket 1.1.0

En esta nueva versión de la distribución se ha incluido al kernel de Linux 5.10 con la finalidad de poder usarlo en nuevas variantes junto con las dos nuevas versiones de las distribuciones aws-k8s-1.20 y vmware-k8s-1.20 compatibles con Kubernetes 1.20.

En estas variantes, así como en la versión actualizada de aws-ecs-1, está involucrado un modo de bloqueo que está configurado en «integridad» de forma predeterminada (bloquea la capacidad de realizar cambios en el kernel en ejecución desde el espacio del usuario). Se eliminó el soporte para aws-k8s-1.15 basado en Kubernetes 1.15.

Además, Amazon ECS ahora admite el modo de red awsvpc, que le permite asignar interfaces de red y direcciones IP internas independientes para cada tarea.

Se agregaron configuraciones para administrar varias configuraciones de Kubernetes TLS bootstrap, incluidos QPS, límites de grupo y la configuración de Kubernetes cloudProvider para permitir el uso fuera de AWS.

En el contenedor de arranque se proporciona con SELinux para restringir el acceso a los datos del usuario, asi como una división a las reglas de política de SELinux para sujetos de confianza.

De los demás cambios que se destacan de la nueva version:

  • Ahora se puede hacer que Kubernetes cluster-dns-ip sea opcional para admitir el uso fuera de AWS
  • Se cambiaron los parámetros para respaldar un escaneo CIS saludable
  • Se añadió la utilidad resize2fs.
  • Se generó un ID de máquina estable para invitados de VMware y ARM KVM
  • Se habilitó el modo de bloqueo del kernel de «integridad» para la variante de vista previa de aws-ecs-1
  • Eliminar la anulación del tiempo de espera de inicio del servicio predeterminado
  • Evitar que los contenedores de arranque se reinicien
  • Nuevas reglas de udev para montar CD-ROM solo cuando hay medios presentes
  • Soporte para la región de AWS ap-noreste-3: Osaka
  •  URI de contenedor de pausa con variables de plantilla estándar
  • Capacidad poder obtener IP de DNS del clúster cuando esté disponible

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

from Linux Adictos https://ift.tt/3f6h0kK
via IFTTT

Cómo instalar TensorFlow en un hosting cloud

Tensorflow

La inteligencia artificial avanza a pasos agigantados. Cada vez es más poderosa y permite aplicarse a nuevas tareas. El aprendizaje automático es uno de los campos de la IA al que debes prestar especial atención, con proyectos como TensorFlow. Si dispones de un servidor o hosting cloud, podrás instalar este proyecto allí para darle la capacidad de aprender sin necesidad de programar de forma explícita.

En este tutorial mostraré, paso a paso, cómo puedes instalar este proyecto de código abierto tan potente en un hosting cloud. Para ello, he elegido como referencia Clouding, por sus precios, facilidad, soporte en español 24/7, disponibilidad, prestaciones y, muy especialmente, por tener su centro de datos en territorio español, en Barcelona. Por tanto, estará bajo las leyes europeas de protección de datos…

¿Cómo me puede ayudar Tensorflow a mi negocio?

Apps empresariales

En la pandemia, se ha hecho mucho más evidente que las empresas necesitan modernizarse para poder ser competitivas. Gran parte de las ayudas europeas irán dirigidas precisamente a esa transición digital. Todos los negocios que no se han adaptado, han sufrido más las consecuencias económicas de esta crisis sanitaria. Por ejemplo, incluso los pequeños negocios se han apresurado a cambiar sus ventas físicas por las ventas online, lo que les ha permitido seguir funcionando sin que las medidas de las restricciones les afecten.

Tecnologías como la nube, el IoT, o la IA, son fundamentales. En concreto, con TensorFlow y el aprendizaje automático, podrás conseguir grandes beneficios. Por citar solo algunos ejemplos:

  • Mejorar imágenes usando IA si te dedicas a temas de diseño o fotografía.
  • Ayudar con el diagnóstico médico analizando los resultados de pruebas médicas.
  • Procesamiento de imágenes de forma ágil y catalogación automatizada.
  • Enseñarle reconocimiento de voz o de sonidos.
  • Análisis facial, de sentimientos, etc.
  • Detección de fallos automatizado.
  • Detección de idiomas en textos de forma automática.
  • Agilizar multitud de tareas cotidianas de la empresa.
  • Y un largo etc. Las aplicaciones son casi inimaginables…

Por eso, es ampliamente usado en la industria, en sectores como el automóvil, también en el sector sanitario, en seguros, agencias tributarias, y otros muchos profesionales.

¿Qué es TensorFlow?

logo Tensorflow

TensorFlow es un software de código abierto, desarrollado inicialmente por ingenieros e investigadores de Google, y más tarde liberado. Una biblioteca para computación numérica y aprendizaje automático. Emplea gráficos de flujo de datos para ello, los nodos representan operaciones matemáticas, mientras los bordes representan matrices de datos multidimensionales (tensores) comunicadas entre ellos.

Con este software se permite construir y entrenar redes neuronales artificiales para realizar múltiples tareas, como detectar y descifrar patrones y correlaciones, de una forma análoga a la forma de aprender y razonar que tienen los seres humanos.

Este proyecto también aporta mucha flexibilidad, pudiendo realizar los cálculos usando CPU o GPU, tanto una como varias de ellas, en PCs, servidores e incluso dispositivos móviles. Eso es posible puesto que es multiplataforma, pudiéndose ejecutar en sistemas como GNU/Linux, macOS, Windows, iOS y Android, así como un servicio web como veremos en este tutorial. Incluso dispone de varios envoltorios para usar diferentes lenguajes de programación: Python, C++, o Java. Todo con una única API.

Instalar TensorFlow paso a paso

Lo siguiente es mostrar un ejemplo paso a paso de cómo instalar TensorFlow en un hosting cloud. Para ello, emplearé un VPS de Clouding.io, donde se pueden elegir tanto sistemas operativos Windows como Linux. Por supuesto, dada la temática del blog y las bondades de GNU/Linux, no hay duda de que me basaré en una distro Linux.

Crear la cuenta y preparar la plataforma de Clouding

Antes de comenzar, hay que registrarse para obtener acceso al servicio que ofrece este proveedor y así disfrutar de los 5€ de saldo gratis que ofrecen para probar la plataforma. Será tan sencillo como seguir los pasos que indican para la verificación de la cuenta. Sólo toma un minuto.

clouding

Después, deberás volver a la web oficial de Clouding y logearte introduciendo tu usuario y contraseña:

registro Clouding

Ahora ya puedes ver el panel de control de Clouding, que como verás es bastante sencillo e intuitivo de usar. Incluso sin demasiados conocimientos podrás manejarlo sin problema siguiendo este tutorial. Para comenzar a crear una instancia para TensorFlow, pulsa Haz click aquí para crear tu primer servidor:

Inicion Cluding Tensorflow

Eso te llevará al menú de configuración de tu servidor. Lo primero será poner el nombre a tu VPS, puedes elegir el que prefieras. Luego hay que elegir el SO. Para este tutorial seleccionaré una de las distros que ofrecen (CentOS, Ubuntu Server, Ubuntu Desktop o Debian). Puedes elegir la que prefieras, en mi caso elegiré un Ubuntu Server 20.04:

Hosting configuración

Una vez seleccionado el sistema base, lo siguiente es configurar el resto de parámetros que aparecen en esa misma página más abajo. Como ves, entre las opciones de configuración de la máquinas podrás elegir la cantidad de RAM, los núcleos de vCPU, o el espacio de almacenamiento SSD que necesitas. Para TensorFlow en sí no necesitarás mucho, pero puede que para el resto de datos que tengas que manejar sí, por tanto, piensa bien lo que necesitas (no obstante, se puede escalar):

Instancia Tensorflow

También es importante que crees la llave SSH, dando el nombre que quieras. Eso te permitirá descargar el par para poder acceder remotamente sin tener que estar introduciendo la contraseña de forma manual cada vez que quieras entrar. Además, también te permite configurar el Firewall o copias de seguridad. En este caso, tanto los backups como el firewall lo dejamos como está.

Si ya has terminado, comprueba que esté todo OK y pulsa Eviar. Eso te redirige a otra pantalla con tu instancia cloud creada. Pero en el apartado de estado verás que se está creando:

Instancia Tensorflow

En un abrir y cerrar de ojos, estará el sistema instalado y configurado. Entonces aparecerá el estado como Activo. Y ya puedes usarlo.

SERVIDOR Cluding Activo

Pulsa sobre el nombre de tu servidor en esta pantalla y te llevará a un resumen con los detalles:

Configuración principal de acceso

Si haces scroll, encontrarás el apartado Cómo acceder al servidor. Es muy importante, ya que aquí es donde encontrarás todo lo necesario para acceder a tu servidor y administrarlo. Por ejemplo, te puedes bajar la clave SSH, o puedes ver la IP pública por la que acceder por SSH, el nombre de usuario (root), y la contraseña de acceso:

Claves ssh

No pierdas esos datos, puesto que te harán falta en los próximos pasos para comenzar a instalar Tensorflow en tu instancia de Clouding.

Pre-requisitos

Para comenzar, lo primero que hay que hacer es satisfacer algunas dependencias o paquetes que serán útiles para Tensorflow, así como actualizar para garantizar que todo está en su versión más reciente. Para ello, vamos a entrar en el terminal para conectarlos por SSH con la contraseña y la IP que mostré en la imagen anterior para acceder desde tu distro de forma remota a la instancia (recuerda sustituir tuipdelservidor por la IP de la instancia de Clouding):

ssh root@tuipdelservidor

acceso ssh

Te pedirá la contraseña de la instancia que también tendrás que introducir y eso te dará acceso. Verás que el prompt de tu terminal ya no es el tuyo local, sino que estás dentro del servidor cloud. Por tanto, todos los comandos que ejecutes a partir de ahora, tendrán efecto en la instancia y no en tu sistema local.

acceso ssh

Ahora, lo primero es actualizar el sistema con los siguientes comandos:

apt-get update && apt-get -y upgrade

instalando Tensorflow

Ahora, deberás instalar Python3 y otros paquetes auxiliares que necesitarás:

apt-get install python3 python3-pip python3-dev

Lo siguiente es preparar el entorno virtual, usando el módulo virtualenv, que forma parte de la biblioteca estándar de Python3:

pip3 install virtualenv

mkdir ~/miproyecto

cd ~/miproyecto

virtualenv tf-env

source tf-env/bin/activate

instalación modulos python

Tras eso notarás que tu prompt ha cambiado, y ahora muestra tf-env antes del nombre de usuario y host.

prompt

Instalar Tensorflow (soporte para CPU)

Ya está todo preparado para la instalación de TensorFlow en tu instancia de Clouding. El siguiente paso a seguir sería:

pip install --upgrade tensorflow

Una vez se ha instalado, puedes verificar la instalación usando el siguiente comando:

python -c ‘import tensorflow as tf; print(tf.version)’

Y eso te debería devolver una salida con la versión de Tensorflow instalada. A partir de ahí, ya podrías comenzar a usar Tensorflow para cualquier tarea que necesites…

Conclusión

En conclusión, las facilidades que ofrece Clouding para trabajar con sus VPS hacen que la experiencia para instalar cualquier proyecto como Tensorflow, o realizar configuraciones, sea tan fácil como hacerlo en tu máquina local. Solo que con la potencia y escalabilidad de este tipo de servidores.

Además, su panel de control es bastante intuitivo y el asistente te guía incluso si no tienes grandes conocimientos técnicos. Por otro lado, las opciones que te da también son muy flexibles, pudiendo elegir tanto los recursos del hardware virtual que necesitas, como el sistema operativo. Esa versatilidad hace que se adapte de maravilla a tus necesidades, por muy particulares que sean.

from Linux Adictos https://ift.tt/33vfIui
via IFTTT

Cifrar una memoria USB en Linux de forma muy sencilla

Pendrive USB Windows 10

Cuando tienes una memoria USB que quieres asegurar para evitar miradas indiscretas, es probable que necesites cifrar tus datos para que nadie sin la clave pueda acceder a ellos. Por ejemplo, cuando se comparte uno de estos dispositivos o está al alcance de varias personas que no deberían tener acceso, es la mejor solución para protegerla.

Hacerlo en Linux es muy sencillo, tienes varias opciones para ello. Por ejemplo, en este tutorial usaré un método válido para la distro Debian/Ubuntu y derivados, aunque también puede funcionar de forma similar para otras si instalas las apps que aquí voy a detallar.

Para poder cifrar tu memoria USB, lo primero debes tener los dos programas a usar. Uno de ellos es la herramienta gráfica Disks (Discos), una utilidad que ya tendrás instalada si empleas el entorno de escritorio GNOME por defecto. La otra es cryptsetup, que es una herramienta para la CLI. Si por algún caso no los tuvieras, te recomiendo ejecutar estas órdenes:


sudo apt-get install update -y

sudo apt-get install -y gnome-disk-utility cryptsetup

Ahora, ya las deberías tener instaladas. Lo siguiente es determinar el nombre de tu memoria USB para cifrar. Para ello, conecta tu pendrive en el puerto USB y ejecuta la orden


lsblk

Eso listará los medios disponibles, entre ellos deberías detectar cuál es la partición o medio correspondiente a tu memoria USB. Es importante que conozcas bien el nombre y no te confundas, o podrías cifrar otra unidad que no es la correcta…

Es importante que el pendrive no tenga nada dentro, o si lo tiene, que hagas copia de seguridad, ya que se borrarán los datos en el proceso, ya que se va a formatear la unidad.

Ahora comenzarían los pasos para el cifrar la unidad:

  1. Abre Discos o Disk.
  2. Selecciona allí el pendrive USB entre las unidades que aparecen en la izquierda.
  3. Desmonta la unidad haciendo clic sobre el recuadro Detener que está en la derecha, bajo la imagen de la partición.
  4. Pulsa ahora en el icono de engranajes para desplegar las opciones. Elige Formatear partición…
  5. Es el momento de seleccionar las opciones. Pon el nombre que quieras a tu unidad USB. En la sección Tipo elige «Disco interno para usarlo solamente con sistemas Linux (ext4)«. Marca también «Volumen protegido por contraseña (LUKS)» para cifrar.
  6. Pulsa Siguiente.
  7. En la siguiente ventana te pide la contraseña para cifrar. No la pierdas, o no podrás acceder a tus datos. Una vez la escribes dos veces, pulsa Siguiente.
  8. Ahora te muestra una advertencia de que se perderán los datos al formatear. Pulsa Formato.
  9. Espera a que termine el proceso y tendrás ya la unidad lista.
  10. Ahora, para los accesos te pedirá la contraseña, por eso, nadie que no la posea podrá acceder a los datos.

from Linux Adictos https://ift.tt/3o6jZha
via IFTTT

Nitrux 1.4.0 llega con Linux 5.12, KDE 5.21.4 y mas

Hace pocos dias se dio a conocer la liberación de la nueva versión de la distribución de Linux, «Nitrux 1.4.0» la cual está construida sobre la base del paquete Debian, las tecnologías KDE y el sistema de inicio OpenRC. Esta distribución se destaca por el desarrollo de su propio escritorio «NX», que es un complemento sobre el entorno KDE Plasma del usuario, además de que el proceso de instalación de aplicaciones está basado en el uso de paquetes AppImages.

NX Desktop ofrece un estilo diferente, implementación propia de la bandeja del sistema, centro de notificaciones y varios plasmoides, como un configurador de red y un applet multimedia para control de volumen y control de reproducción de contenido multimedia. De las aplicaciones desarrolladas por el proyecto, también se distingue una interfaz para configurar el Firewall NX, que le permite controlar el acceso a la red a nivel de aplicaciones individuales.

El paquete también incluye aplicaciones de MauiKit, incluido el administrador de archivos Index (también puede usar Dolphin), el editor de texto Note, el emulador de terminal Station, el reproductor de música Clip, el reproductor de video VVave y el visor de imágenes Pix.

Principales novedades de Nitrux 1.4.0

En esta nueva versión de la distribución podremos encontrar que los componentes de escritorio se han actualizado a KDE Plasma 5.21.4, KDE Frameworksn 5.81.0 y KDE Gear (KDE Applications) 21.04 y con lo cual además se mejoró la integración de KDE Plasma con skins y esquemas de color específicos de Nitrux con lo cual el diseño del protector de pantalla está unificado con el escritorio, ambos temas de Kvantum admiten transparencia y desenfoque, pero no está habilitado de forma predeterminada.

La sesión Plasma (Wayland) actualmente funciona mejor con tarjetas gráficas Intel y AMD, mientras que para la con tarjetas gráficas Nvidia, se puede notar un rendimiento reducido.

Por otra parte, podremos encontrar que durante la instalación de la distribución se nos permite poder elegir entre los paquetes con el kernel de Linux 5.4.115, 5.10.33, 5.12, Linux Libre 5.12 y Linux Libre 5.10.33, así como kerneles 5.11 y 5.12 con parches de los proyectos Liquorix y Xanmod.

En cuanto a las novedades presentadas de esta nueva versión se destaca que se incluye una nueva aplicación de administración de la libreta de direcciones de Communicator escrita con el marco de Maui.

Se eliminaron fgetty y Dash de la distribución base que no se usaron, asi como también se eliminó el Administrador de particiones de KDE del conjunto predeterminado de aplicaciones.

De las aplicaciones actualizadas que se incluyen se destaca la nueva versión de Kdenlive 21.04.0 en la cual se destaca una nueva opción de voz a texto, mejoras en la interfaz y en la usabilidad, LibreOffice 7.1.2.2 y Firefox 88.0, aplicacion con las cuales la base de esta nueva versión también se integran en la versión mínima de la distribución.

Finalmente si están interesados en conocer más al respecto sobre la liberación de esta nueva versión, pueden consultar los detalles en el siguiente enlace.

Descargar la nueva versión de Nitrux

Si quieren descargar esta nueva versión de Nitrux 1.4.0, deberán de dirigirse a la página web oficial del proyecto en donde podrán obtener el enlace de descarga de la imagen del sistema y la cual podrán grabar en un USB con ayuda de Etcher. Nitrux está disponible para su descarga inmediata desde el siguiente enlace. 

En cuanto a los que cuentan con una versión anterior de la distribución, pueden realizar la actualización del Kernel tecleando alguno de los siguientes comandos:

Para poder actualizar el kernel LTS 5.4 a la versión 5.4.115:

sudo apt install linux-image-mainline-lts- 5.4

En cuanto a los que quieren mantener su versión LTS o alguna versión no LTS reciente, pueden teclear:

sudo apt install linux-image-mainline-lts
sudo apt install linux-image-mainline-current

Para los que estén interesados en poder instalar o probar los kernels Liquorix y Xanmod:

sudo apt instalar linux-image-liquorix
sudo apt instalar linux-image-xanmod

Finalmente para los que prefieren el uso de los kernels Linux Libre LTS y no LTS más recientes:

sudo apt instalar linux-image-libre-lts
sudo apt instalar linux-image-libre-curren

Si quieren conocer más al respecto del proyecto, pueden visitar si página web oficial en el siguiente enlace.

from Linux Adictos https://ift.tt/3tDQGDG
via IFTTT

Finit 4.0: una alternativa simple para systemd y SysV init

Finit

SysV init ha sido el sistema que ha estado ligado a Linux desde el comienzo, y ligado al mundo Unix, aunque otros como BSD (e incluso algunas distros) usaban el suyo propio. Además, también ha habido algunas implementaciones como Upstar de Ubuntu. Con la llegada de systemd todo cambió, y la mayoría de distros lo adoptaron, transformándose en el sistema por defecto, a excepción de algunas distros como Devuan que siguen usando SysV. Pues bien, ahora llega Finit, para ponerte la elección aún más complicada…

Como sabes, muchos han abrazado systemd sin problema, pero sigue habiendo detractores que siguen prefiriendo SysV init u otros. Ahora, Finit llega como un reemplazo simple de ambos, tanto de SysV init y systemd. Y con la versión Finit 4.0, podrás gozar de algunas mejoras que lo hacen aún más interesante como alternativa a éstos.

Finit proviene de Fast Init, y se basa en SysV init, y desarrollado para ser rápido y ligero como su propio nombre indica. Además de ejecutar y gestionar las scripts de arranque, también tiene supervisión de procesos similar al demonio runit. Y, por supuesto, se integra a la perfección en las distros GNU/Linux, especialmente diseñado para las más minimalistas.

Es completamente funcional tanto para el servidor como para el escritorio. También es capaz de iniciar servicios en paralelo, supervisar y reiniciar automáticamente los que fallan, aporta una gran facilidad de uso, posee un simple fichero de configuración, etc.

En cuanto a la versión Finit 4.0, las novedades incluidas son:

  • Soporte inicial para cgroups v2.
  • La herramienta de reinicio independiente ha sido reemplazada por un enlace simbólico a initctl, como sus hermanos: halt, poweroff, shutdown, suspend.
  • Se eliminó el super servidor inetd incorporado. Si necesita esta funcionalidad, utilice un inetd externo, como xinetd, en su lugar.
  • Las condiciones de servicio cambian de <svc/path/to/foo> a <pid/foo:id>, que es más intuitivo.
  • Soporte para SysV start/stop scripts y monitorización de servicios de bifurcación.
  • Redirección de la salida del demonio dbus a syslog.
  • initctl, sin un argumento u opción, ahora tiene como valor predeterminado la lista de servicios.

Para obtener información detallada, puedes consultar la web oficial del proyecto Finit.

from Linux Adictos https://ift.tt/33wvAg3
via IFTTT

Kodi 19.1 llega corrigiendo los primeros fallos de Matrix, que no son pocos por ser tratarse de una nueva serie

Kodi 19.1

Desde que uso XBMC, creo que es un software que amo y odio. Lo amo por todo lo que puede ofrecer, pero lo odio porque muchos complementos (addons) pueden dejar de funcionar en cualquier momento y algunos de los que funcionan bien, al depender de contenido externo, pueden hacer que el software termine congelándose. Lo cierto es que esos problemas no están relacionados con el software en sí, pero el proyecto ya ha lanzado Kodi 19.1 para solucionar lo que sí depende de ellos.

En cuanto a lo que no depende de ellos, Kodi 19 Matrix está siendo un poco desastre. Dieron el salto a Python 3, abandonaron el soporte para la segunda versión del lenguaje de programación y los desarrolladores de addons no se están dando la prisa que deberían, por lo que hay muchos que han dejado de funcionar. El software en sí también introdujo fallos, como toda actualización mayor, y Kodi 19.1 ha empezado a encargarse de ellos. A continuación tenéis la lista con las novedades que han llegado junto a esta versión.

Novedades de Kodi 19.1 Matrix

  • Vídeo
    • Ahora se detectan los metadatos HDR en las transmisiones de perfil 2 de VP9 y se pueden utilizar en plataformas que soportan el paso de HDR o el mapeo de tonos al reproducir este tipo de vídeos.
  • Discos
    • Corregida la reproducción de DVDs ópticos en Linux y el salto de capítulos de Blu-ray BD-J a través de mandos/teclado
  • PVR
    • Corregido:
      • Menú contextual no accesible en la ventana de la Guía PVR cuando se utiliza un mando muy básico para controlar Kodi.
      • El nombre y el número del canal del cliente no persisten cuando se cambian.
      • El recuento de reproducciones y la posición de reanudación de las grabaciones se perdían después de reiniciar Kodi.
      • El fallo al navegar por la EPG cuando se usa MySQL como base de datos de la EPG.
      • La hora de la próxima grabación en … etiqueta no se localiza en la ventana de reglas de Estuary Timer/Timer.
      • El gestor de canales no renombra el canal de fondo.
      • La reproducción del programa archivado no se selecciona al abrir la ventana de la Guía.
      • La GUI no se actualiza al eliminar/insertar/ocultar/desocultar grupos de canales.
    • Modificado: se ha mejorado el aspecto de las ventanas PVR en Estuary.
  • Biblioteca musical
    • Corregido el problema con la música de los cuesheets donde sólo se añadía la primera pista a la biblioteca al volver a escanear, borrándose el resto.
  • JSON-RPC
    • PVR – Reintroducidas las propiedades de emisión ‘hastimer’, ‘hastimerrule’, ‘hasrecording’, ‘recording’ y reintroducida la propiedad de canal ‘isrecording’.
  • Subtítulos
    • Corregida la detección de fuentes de sistema (directwrite) en ventanas para subtítulos ASS, la detección de fuentes de usuario (en userdata/fonts) para subtítulos ASS y la representación de subtítulos ASS semitransparentes en Wayland.
  • GUI/Interfaz
    • Corregido el arcado de medios para DVD/BluRay.
  • Interfaz web
    • Ahora Chorus2 está basado en las contribuciones de la comunidad.
  • Sistema de archivos
    • Ahora habilita la caché de archivos por defecto para los sistemas de archivos de red y mejora de la gestión de errores de la caché de archivos.
  • Red
    • Mejorada de la fiabilidad de los sistemas de archivos de red HTTP y NFS
  • Específicos de Windows
    • Añadido:
      • Soporte para el protocolo WS-Discovery que permite localizar servidores SMB y navegar por las carpetas compartidas utilizando SMBv3.
      • Vídeo OSD de información de depuración. Amplía el actual reproductor de información de depuración (Ctrl+Shift+O) con nueva información sólo de vídeo (Alt+O).
    • Corregido:
      • Con algunos streams inusuales, se podían pasar metadatos HDR incorrectos (HDR10 passthrough).
      • Pantalla verde en sistemas con HW antiguo (nivel de característica DX 9.1) al reproducir vídeos de 10 bits.
      • La pantalla negra con el método de renderizado por software y con la aceleración por hardware DXVA2 desactivada.
      • Pantalla verde al reproducir el menú de algunos DVDs (sólo MPEG2 SD).
      • Policitud de credenciales para recursos compartidos SMB anónimos.
    • Actualizado: Los tiempos de ejecución de VC incluidos en el instalador para añadir compatibilidad con VS2019 y VS2017 al mismo tiempo.
  • Aspectos específicos de Android
    • Corregidos los recursos compartidos SMB montados a nivel de sistema no son visibles en Kodi y los recursos compartidos SMB se etiquetan con números crípticos (UUID) en lugar del nombre real del disco.
  • Aspectos específicos de Xbox
    • Esta versión también lleva la 19.1 a la Xbox.

Ya disponible, pronto en tu distribución Linux

Kodi 19.1 Matrix ya ha sido lanzado oficialmente, por lo que ya se puede descargar desde su página web oficial o seguir las instrucciones para instalarlo en Linux, disponibles aquí. Pronto también llegará la nueva versión a Flathub.

from Linux Adictos https://ift.tt/2Rckzhf
via IFTTT