¿Cómo aprender programación en C y las bases de los sistemas operativos de forma práctica?

Hay muchas formas de aprender a programar, existen multitud de páginas webs con tutoriales, ejemplos de código, etc. También podrás encontrar una gran variedad de libros sobre programación, tanto de C como de otros muchos lenguajes. Igualmente hay cursos online o presenciales de programación donde comenzar a comprender estas técnicas para crear tu propio software desde cero hasta un nivel avanzado.

Luego, por otro lado, existen algunos entrenadores físicos con ciertos microprocesadores o microcontroladores que puedes programar para aprender este arte casi jugando y creando proyectos. Un ejemplo muy bueno es la propia Raspberry Pi, las placas de Parallaz, o las nacionales que puedes encontrar en la tienda MKElectrónica, o la placa archiconocida Arduino, Scratch. Sin embargo, si quieres centrarte más en el desarrollo del software, siempre aconsejo lo mismo: lee y modifica código.

En este post no intentaré darte clases de programación, ya que es un tema que daría para muchos artículos como este explicando desde las bases de la programación hasta la programación más avanzada. Solo pretendo darte algunos recursos o formas de comenzar para afianzar tus conocimientos. Y te aseguro que son muy efectivos. Además, sabes que puedes comenzar con cualquier distro GNU/Linux, con los paquetes necesarios para programación como un editor de texto, o un IDE, tambien GCC y GDB, si quieres depurar… O también usar alguna distribución para programadores. También creo que ya conoces o deberías conocer este tipo de herramientas que tienes a tu disposición.

¿Cómo comenzar?

Puedes encontrar snippets de código en la red a millones, es decir, fragmentos de código que se pueden usar o modificar para hacer tareas muy concretas. Estos códigos fuente son la base para el aprendizaje, ya que son funciones muy básicas que te ayudarán a entender cómo funcionan los programas y podrás modificar en algunos parámetros para conseguir que hagan otra cosa diferente. ¡Y así se empieza!

Con forme vayas avanzando podrás lanzarte a leer código fuente, que si está bien comentado será especialmente nutritivo para tus conocimientos. Desgraciadamente no todos los desarrolladores tienen la buena costumbre de comentar las líneas que escriben, y en algunos casos los comentarios son escasos o confusos incluso para gente con experiencia. Pero afortunadamente tenemos una gran parte de la comunidad que comenta bastante bien sus proyectos.

Plataformas donde se cuelga código de software como GitHub, por poner un ejemplo, aunque existen muchas más, son fuentes de sabiduría muy importantes. De hecho, te recomiendo que una vez hayas adquirido cierta soltura con los snippets o tus pequeños programas, vayas a este tipo de plataformas y accedas al código fuente de proyectos sencillos. Puedes usar las funciones de filtros y buscadores para encontrar código específico en un lenguaje de programación, como C y luego seleccionar alguno que sea más simple.

Así poco a poco podrás ir aumentando la complejidad de los programas para conseguir elevar tus conocimientos hasta un nivel bastante avanzado. No comiences por proyectos con gran cantidad de líneas, o te frustrará el hecho de no entender para qué sirve o qué hace esa gran cantidad de código. Comienza con pequeños programas de unas decenas de líneas, luego por algunos de 100 o más y así hasta poco a poco llegar a programas más complejos.

Además, te aconsejo que busques programas que conozcas bastante bien en cuanto a su uso. Por ejemplo, imagina que usas un determinado editor de texto de código abierto o una calculadora. Sabiendo lo que hace dicho programa en la práctica te será más fácil relacionar las líneas de código fuente que verás con las funciones que tiene el programa. En cambio, si eliges un código del que no tienes idea, solo con ayuda de tus conocimientos básicos de programación y de los comentarios que encontrarás en los ficheros de código no será suficiente.

Por ejemplo, fíjate en el segundo ejemplo que muestra en la búsqueda que hice de programas de cálculo en lenguaje C de la siguiente imagen. En la descripción se muestra que es un programa en línea de comandos que implementa una simple calculadora. Esto es un buen código para comenzar, no solo por la simplicidad del código, sino porque al ser basado en texto no tendrás ficheros de código referente a la GUI, etc., todo eso te distrae y te dificulta el aprendizaje bastante:

 

Si entramos dentro de este proyecto para ver su código, nos vamos a encontrar primero los ficheros que el desarrollador ha subido a esta plataforma. Como los detalles de la licencia LICENSE, el fichero con información por excelencia README, etc. Pero fíjate que hay ficheros de cabeceras (headers) como helpers.h y struct.h, estos dos son importantes, y también los dos .c, que son los que tienen el código fuente en C propiamente dicho para este programa:

 

Si accedemos a uno de los headers o .h, veremos que se trata de un programa sencillo, sin demasiadas líneas. Este tipo de ficheros los vas a encontrar muchas veces, a no ser que sea un programa bastante simple que no los necesita, pero se trata de un include file donde se incluyen algunos detalles o ficheros adicionales que el compilador debe procesar para formar el binario final del programa.

En un header file encontrarás declaraciones directas de clases, subrutinas, variables definidas, y otros. En ocasiones, estos .h son bibliotecas que puedes usar desde el fichero principal de código (.c) haciendo referencia directa a lo que dentro de estas cabeceras se declara sin tener que volver a repetir toda la estructura cada vez que se necesita:

En el caso del código fuente propiamente dicho, como el fichero calc.c de nuestro ejemplo, encontrarás más líneas. Unas 400 y pico, y en este caso concreto no están comentadas. Lo que dificulta seriamente la comprensión del código. No obstante, al ser un programa tan sencillo como una calculadora, puedes leerlo y modificarlo sin problemas, ya que te resultará intuitivo:

 

Recuerda, leer código y modificarlo. Esas son las claves para aprender a programar de la mejor forma posible…

 

Un paso más: el kernel

Ahora bien, cuando ya has adquirido unas competencias básicas de programación en lenguaje C, puedes dar un paso más y adentrarte en el fascinante mundo de los sistemas operativos y de las arquitecturas de computadoras. Para ello debes tener conocimientos algo más elevados de cómo funcionan los ordenadores, pero nuevamente los proyectos de código abierto existentes nos pueden ayudar mucho.

Analizar el código fuente de un kernel nos puede hacer comprender de una forma mejor cómo funciona este mundo de los sistemas operativos, y también serán unas clases magistrales para obtener nuestro “doctorado” en programación C, al ser algo de palabras mayores. Podrías pensar que el mejor proyecto para aprender esto sería el kernel Linux.

En cambio, las dimensiones actuales de las últimas versiones del kernel Linux son demasiado complejas como para ser comprensibles para la mayoría de mortales. Especialmente por la gran cantidad de código para otros subsistemas y controladores que vas a encontrar agregado a lo que es el kernel en sí. Eso puede llevarte a pensar que en kernel.org puedes encontrar versiones más primitivas del kernel, como los “historic” donde hay algunas “old-versions” como por ejemplo la Linux 0.01, la primera en la que el código es mucho más reducido y simple de analizar.

Y aunque el código C que encontrarás en el kernel Linux es exquisito, no te recomiendo el kernel Linux por el hecho de que suele estar escasamente comentado en muchas ocasiones. No quiero decir que los desarrolladores lleven una mala política de comentarios, pero sí que puede resultar confuso para alguien que está empezando en esto. Así que deja el kernel Linux y las LKML para más adelante…

Y es verdad que existen algunos muy buenos libros y cursos para aprender sobre el kernel, módulos y controladores, pero quizás no sea lo mejor para empezar. Algunos ejemplos son (algunos de ellos, como los de Greg, los puedes descargar gratuitamente, ya que han sido liberados):

  • Linux Kernel Development 3rd Edition de Robert Love.
  • Understanding The Linux Virtual Memory Manager de Mel Goman, aunque éste último se centra solo en la gestión de memoria del kernel.
  • Linux Device Drivers 3rd Edition de Greg Kroah-Hartman, aunque es centrado en el kernel 2.6, pero es una gran obra para entender los controladores y módulos del kernel.
  • Linux Kernel in a Nutshell es otro del gran Greg Kroah-Hartman que te da una visión mucho más global.

También puedes encontrar algunas webs muy muy interesantes, más allá de la propia información y documentación que puedes encontrar en kernel.org, como:

Otro de los grandes proyectos que aún se siguen estudiando y sirviendo como aprendizaje es UNIX 6th, cuyo código se analiza de una forma extraordinaria en libros como Lions’ Commentary on UNIX 6th Edition, de John Lions. Te lo dejo como otra idea alternativa, aunque te sigo recomendando lo siguiente que te voy a comentar…

Pero creo que el mejor recurso que tienes a tu disposición es estudiar y analizar el código fuente de MINIX. Es un sistema mucho más sencillo en el que en un inicio se inspiró Linux pero que ha sido concebido especialmente para el aprendizaje y su estudio. Al estar pensado para que los futuros arquitectos de sistemas operativos aprendan, los comentarios que tiene son extraordinarios para los que comienzan en esto.

Más información – MINIX3

Allí vas a encontrar mucha información y documentación sobre el proyecto. Y podrás descargar el propio sistema operativo, pero también tener a tu disposición una buena Wiki donde también hay textos dirigidos a desarrolladores. Pero, como de lo que se trata es de aprender C y de analizar cómo está constituido un sistema operativo, te remito directamente a descargar la primera versión del código fuente de MINIX 1:

Código fuente – MINIX1

Por ejemplo, si te vas al fichero principal main.c, verás que el código aquí es muy diferente a cómo lo encuentras en Linux o en el programa de calculadora que puse de ejemplo al inicio de este post. En este caso, notarás que la cantidad de comentarios son mucho más abundantes:

 

Aquí, casi cada línea o cada fragmento está comentado. Haciendo mucho más sencilla su lectura y comprensión. Vuelvo a insistir, no se trata solo de leer y comprender, también de modificar. Haz tus propias modificaciones y pruebas, luego compila y ve el resultado. Eso será el mejor master de programación que podrás encontrar. Te lo aseguro, como siempre les digo a mis alumnos, leer y modificar código es la mejor clase de informática que vais a tener…

No solo podrás analizar el kernel del sistema operativo, también otros elementos auxiliares que componen el sistema operativo completo y también comandos que puedes ejecutar en el shell. Es una magnífica forma de conocer desde “dentro” cómo funcionan esos comandos como ls, cat, cp, grep, echo, etc., que ejecutas a diario, también con código bastante bien comentado…

Código fuente de los comandos – MINIX1

Por último, conozco a un chico que ha creado un kernel hecho desde cero. Se llama Luis y podéis encontrar su proyecto en esta dirección de GitHub, otro buen ejemplo de estudio que os recomendaría. Su sistema se llama IndiaOS, es bastante sencillo y perfecto para adquirir los conocimientos básicos. ¿Quién sabe? Quizás seas tú el siguiente en animarse en crear un kernel…

Si quieres aprender ensamblador o ASM, un lenguaje basante interesante junto a C para programar a bajo nivel y, en especial, para los sistemas operativos…, también existen proyectos muy interesantes como el caso de KolibriOS, un sistema libre escrito en ensamblador. Al estar en ASM, resulta mucho más complicado, pero también da una buena idea de cómo trabajan las máquinas a un nivel más íntimo con respecto al hardware.

Tutorial: Imprimir código fuente para estudiarlo en papel

Si eres de los que no le gusta pasar horas frente a una pantalla y dejarse la vista en ella, quizás prefieras el papel. Te voy a mostrar un pequeño tutorial de cómo puedes imprimir todos estos códigos fuente de los que hemos hablado o los que quieras analizar. Así podrás tener un PDF con la sintaxis resaltada lista para imprimir en tu impresora y leer sobre papel, donde podrás hacer tus anotaciones y demás.

Para ello, lo primero será instalar los paquetes necesarios en nuestra distro:

 

sudo apt-get install texlive-latex-extra latex-xcolor textlive-latex-recommended

 

 

Una vez tenemos estos ficheros, usaremos LATEX para trasnformar el código fuente en un PDF, y para ello debemos guardar este script, darle los permisos de ejecución y ejecutarlo en Bash:

#!/usr/bin/env bash

tex_file=$(mktemp) ## Random text file name

cat<<EOF >$tex_file   ## Print the text file header
\documentclass{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{color}  %% Allow color names
\lstdefinestyle{customasm}{
  belowcaptionskip=1\baselineskip,
  xleftmargin=\parindent,
  language=C++,   %% Change this to whatever you write in
  breaklines=true, %% Wrap long lines
  basicstyle=\footnotesize\ttfamily,
  commentstyle=\itshape\color{Gray},
  stringstyle=\color{Black},
  keywordstyle=\bfseries\color{OliveGreen},
  identifierstyle=\color{blue},
  xleftmargin=-8em,
}        
\usepackage[colorlinks=true,linkcolor=blue]{hyperref} 
\begin{document}
\tableofcontents

EOF

find . -type f ! -regex ".*/\..*" ! -name ".*" ! -name "*~" ! -name 'src2pdf'|
sed 's/^\..//' |                 ## Change ./foo/bar.src to foo/bar.src

while read  i; do                ## Loop through each file
    name=${i//_/\\_}             ## escape underscores
    echo "\newpage" >> $tex_file   ## start each section on a new page
    echo "\section{$i}" >> $tex_file  ## Create a section for each filename

   ## This command will include the file in the PDF
    echo "\lstinputlisting[style=customasm]{$i}" >>$tex_file
done &&
echo "\end{document}" >> $tex_file &&
pdflatex $tex_file -output-directory . && 
pdflatex $tex_file -output-directory .  ## This needs to be run twice ## for the TOC to be generated  </pre><pre>

Tras guardarlo en un fichero con el nombre pdf.sh, puedes darle permisos y ejecutarlo de una forma fácil:


chmod +x pdf.sh
./pdf.sh

Y el resultado será un PDF con el texto resaltado en color para una mejor lectura de los ficheros de código fuente del directorio actual. El nombre del documento PDF será all.pdf. Ahora estará listo para que lo pongas en tu cola de impresión para tenerlo en papel.

Por cierto, el único problema es que los ficheros de código fuente del directorio donde ejecutes este script que contengan espacios en sus nombres no funcionarán con este script. Así que si hay alguno puedes modificar su nombre o alterar el script para que los admita…

No olvides dejar tus comentarios, estaré encantado de contestar cualquier duda que tengas al respecto, o de escuchar cualquier aprotación que tengas para mejorar el post. Y espero que te haya servido como guía para iniciarte en este mundillo…

El artículo ¿Cómo aprender programación en C y las bases de los sistemas operativos de forma práctica? ha sido originalmente publicado en Linux Adictos.

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

OrbitalApps: una forma de tener aplicaciones portables en Linux

La tecnología mejoró mucho y sigue mejorando la base diaria para que el entorno sea más estable y fácil de trabajar. De esa manera, Orbital Apps o ORBApps Open Runnable Bundle llegaron ya desde hace algun tiempo a Linux.

Las Orbital Apps es un concepto de aplicación de código abierto totalmente gratuita que nos ayudará a ejecutar más de 60 aplicaciones sin instalar en el sistema, incluso se pueden ejecutar directamente desde una unidad USB.

Alternativamente, también podemos instalar todas las aplicaciones fuera de línea con lo cual se incluyen las dependencias.

Las aplicaciones se firman con PGP / RSA y se distribuyen a través de TLS 1.2 y se comprimen en un nivel alto cuando estamos comparando el tamaño real, es un 60% más pequeño.

Aunque hablando de Appimage sin duda ha ido ganando popularidad en los últimos tiempos a tener algunos programas de famosos en su formato, como Audacity, por ejemplo, Inkscape y Kdenlive y más.

Pero algo que me ha llamado la atención de OrbitalApps además de que tiene la “filosofía” como el Appimage, tiene algunas peculiaridades:

OrbitalApps soporta dos métodos:

  • Aplicaciones portátiles

Las aplicaciones ingresan automáticamente al modo portátil cuando se ejecutan desde una unidad USB, lo que significa que todos los ajustes y datos utilizados por la aplicación se almacenarán en la unidad USB.

Alternativamente, podemos ejecutar desde el disco duro del sistema sin instalarlo. No hay nada que instalar: las aplicaciones se ejecutan sin instalarlas y no requieren ningún software especial y no necesitan privilegios de acceso, más detalles

  • Superdebs

Superdebs es un instalador de software que contiene un programa con todas las dependencias requeridas, diseñado para facilitar la distribución e instalación del software en sistemas basados ​​en Debian, en particular, Ubuntu 16.04 de 32 bits.

Aplicaciones

Dentro de las aplicaciones que se pueden destacar de este formato OrbitalApps podemos destacar las siguientes:

  • abiword
  • audacious
  • audacity
  • darktable
  • deluge
  • filezilla
  • firefox
  • gimp
  • gnome-mplayer
  • hexchat
  • inkscape
  • isomaster
  • kodi
  • libreoffice
  • qbittorrent
  • sound-juicer
  • thunderbird
  • tomahawk
  • uget
  • vlc

¿Cómo obtener las OrbitalApps en Linux?

Inicialmente las OrbitalApps funcionaron en Ubuntu y derivados, pero hoy en día es posible poder utilizar este formato de aplicaciones en más distirbuciones de Linux.

Para poder hacer uso de estas aplicaciones debemos de realizar la instalación del Launcher ORB, que facilita el manejo de los programas empaquetados en formato .orb.

Debemos de abrir una terminal en nuestro sistema y en ella vamos a teclear el siguiente comando:

wget https://www.orbital-apps.com/files/orb-launcher/orb-launcher_0.2.001.iso

Ahora tendremos que montar nuestro archivo ISO en el sistema, esto lo podremos hacer con ayuda de “Disk Image Mounter”.

Hecho esto, aparecerá una ventana diciendo que el “orb” contiene un software que se inicia de forma automática y si les gustaría ejecutarlo. Hagan clic en “Ejecutar”.

O desde la terminal lo podemos hacer de la siguiente forma.

Vamos a crear un espacio en donde se montará el archivo ISO, por ejemplo, podemos hacerlo así:

sudo mkdir /media/iso

Y montamos el archivo ISO con:

sudo mount -o loop -t iso9660 orb-launcher_0.2.001.iso /media/iso

Luego vayan a la carpeta montada, abran esta y hagan clic secundario en el archivo “autorun.sh” y deben de seleccionar la opción de Ejecutar en Terminal o Ejecutar.

O pueden acceder a la carpeta desde la terminal con:

cd  /media/iso

Y ejecutar este archivo con:

sh ./autorun.sh

Si este método no te ha funcionado puedes utilizar el instalador alternativo que ofrecen los desarrolladores, para ello basta con teclear en una terminal:

wget -O - https://www.orbital-apps.com/orb.sh | bash

O si no tienes wget:

curl https://www.orbital-apps.com/orb.sh | bash

Después de eso se les solicitara su contraseña del sistema y deberán de esperar a que la instalación finalice.

¿Como obtener las aplicaciones portables?

Ya instalado el lanzador en el sistema, podremos proceder a obtener nuestras aplicaciones portátiles descargándolas desde el siguiente sitio web, el enlace es este.

Aquí nos ofrecerán el enlace para acceder a su sitio de descarga.

Por ejemplo, si no interesa tener una versión portable de Kodi, simplemente nos dirigimos al siguiente enlace y en la página veremos el botón que dice “download portable app”.

Y este descargara la aplicación en un formato. orb.

Y listo con ello ya podras comenzar a descargar tu repertorio de aplicaciones.

El artículo OrbitalApps: una forma de tener aplicaciones portables en Linux ha sido originalmente publicado en Linux Adictos.

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

Flatpak ahora permite cerrar instancias usando el comando ‘kill’

Alex Larsson, desarrollador de Flatpak, ha lanzado una nueva versión de esta gran aplicación de sandboxing que promete ser el futuro de la distribución de aplicaciones en los distintos sabores de Linux.

Flatpak 1.1.0 está disponible ahora mismo, dándole paso al desarrollo de la serie Flatpak 1.2, que se espera llegue antes de terminar el año, prometiendo nuevas características y mejoras para hacer que la experiencia de usar Flatpak sea mejor en todos los ángulos.

En este lanzamiento, el equipo de desarrollo implemento el nuevo comando “Flatpak kill” para que los usuarios puedan cerrar instancias de Flatpak, además, el argumento – – remote ya es opcional en el comando “flatpak install” para instalaciones interactivas, al usarlo se puede escoger una dirección remota para instalar la aplicación.

Por otro lado, Flatpak 1.1.0 añade soporte para la opción – – columns a todos los comandos de impresión de tablas para que los usuarios puedan especificar exactamente lo que quieren ver, soporte para el argumento – – commits para el comando “flatpak repo” para listas los commits, por último, soporte para el argumento – – info que muestra información sobre el repositorio Flatpak.

El comando “Flatpak list” ha sido actualizado para soportar el filtro por tiempo de ejecución y el comando “Flatpak uninstall” ahora soporte el argumento – – delete-data que permite a los usuarios eliminar directorios de aplicaciones en la carpeta principal. Si no se especifica la aplicación, los datos de todas las aplicaciones desinstaladas se eliminarán.

Flatpak 1.1.0 da un paso adelante a la serie Flatpak 1.2. No tienes que instalar Flatpak 1.1.0 en tu distro para disfrutar de las novedades, pero puedes descargar el archivo tarball si quieres probar. Te recomendamos esperar a Flatpak 1.2 antes de actualizar la serie 1.0.

El artículo Flatpak ahora permite cerrar instancias usando el comando ‘kill’ ha sido originalmente publicado en Linux Adictos.

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

ReactOS, el clon ‘libre’ de Windows, ahora puede bootear desde discos Btrfs

Colin Finck del proyecto ReactOS anuncio el lanzamiento de ReactOS 0.4.10, una nueva versión que trae muchas mejoras para el clon libre de Windows.

Como cualquier otro lanzamiento de ReactOS, la versión 0.4.10 introduce algo nuevo para que los usuarios puedan probar en sus computadoras y se mantengan ocupados hasta el próximo lanzamiento. El añadido más importante de esta versión es la habilidad de iniciar el sistema desde discos duros con formato Btrfs.

Este cambio mayor permite que los usuarios instalen e inicien ReactOS desde un disco con formato Btrfs, esto ha sido posible gracias la implementación gracias a la implementación del controlador de Windows WinBtrfs.

Mejoras en la estabilidad, confiabilidad y otros cambios

Aparte de la implementación de WinBtrfs, el lanzamiento ReactOS 0.4.10 añade mejoras al shell grafico como una renovada interacción con múltiples ventanas, el diseño general del sistema, especialmente los instaladores MSI, así como la funcionalidad de acceso directo.

La estabilidad completa de ReactOS ha sido mejorada en este lanzamiento, lo que quiere decir que el sistema operativo y aplicaciones tendrán menos cierres inesperados y el rendimiento general será mejor.

Muchos bugs y otros errores reportes por los usuarios han sido arreglados esperando que ReactOS sea una mejor alternativa para Windows. Puedes probar ReactOS descargando la última versión de este enlace.

El artículo ReactOS, el clon ‘libre’ de Windows, ahora puede bootear desde discos Btrfs ha sido originalmente publicado en Linux Adictos.

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

Ya fue liberada la nueva versión de Shotcut 18.11 con nuevas mejoras y mas

Recientemente hubo una liberación del editor de vídeo Shotcut, el cual llega en su nueva versión 18.11 que desarrolla el diseñador de MLT y utiliza este marco para la organización de la edición de vídeo.

Shotcut implementa el soporte para formatos de vídeo y audio se a través de FFmpeg. Puede utilizar complementos con la implementación de efectos de vídeo y audio que sean compatibles con Frei0r y LADSPA.

De las características de Shotcut que lo destacan es la posibilidad de edición multipista con la composición del vídeo de los fragmentos en varios formatos de origen, sin la necesidad de importarlos previamente o de transcodificarlos.

Sobre la nueva versión de Shotcut 18.11

En este nuevo lanzamiento de la aplicación se agregó una pantalla con opciones para crear un nuevo proyecto y una lista de proyectos abiertos recientemente.

Para los que somos usuarios de Linux y de esta aplicación, los desarrolladores han implementado la capacidad de usar VA-API para la codificación de video acelerada por hardware.

También a la aplicación se le ha agregado un modo extendido a la sección de exportación, una opción para habilitar la codificación y preselección de video acelerado por hardware para Ut Video.

Mientras que para los que son utilizan esta aplicación en MacOS se agregó el soporte para la API de VideoToolbox y un SDK y se implementó la entrega de un ensamblado firmado con una firma digital.

Otro de los puntos principales a destacar de esta nueva versión es el soporte para superponer grillas de 10 píxeles y 20 píxeles durante la reproducción y un filtro de eliminación de manchas para eliminar las manchas.

Por otro lado en cuanto a los menús de la aplicación fue añadido un nuevo menú “Ver> Alcances> Forma de onda de video”.

En cuanto a los filtros de la aplicación podemos encontrar que el filtro de rotación y escalado, la escala máxima se incrementa al 500% y se agregó un filtro que muestra un temporizador en la forma “MM: SS.SS” y un filtro de visualización de ondas de audio.

En el cuadro de diálogo Clasificación de color, se agrega la capacidad de cambiar el color de la rueda del mouse.

Finalmente, de lo nuevo que se puede destacar es la adición del soporte para mostrar video en un área cuadrada con calidad de 1080p (30 y 60 FPS).

¿Cómo instalar Shotcut 18.11 en Linux?

Para poder instalar este editor de vídeo en alguna de las diferentes distribuciones de Linux es necesario que sigan las siguientes instrucciones.

En el caso de los que son usuarios de Ubuntu y sus derivados, pueden instalar esta aplicación añadiendo el repositorio de la aplicación a su sistema. Para ello debemos de abrir una terminal con Ctrl + Alt + T y en ella vamos a ejecutar lo siguiente.

Primero vamos a añadir el repositorio con:

sudo add-apt-repository ppa:haraldhv/shotcut

Luego actualizamos el listado de paquetes y repositorios con este comando:

sudo apt-get update

Finalmente procedemos a instalar la aplicación con:

sudo apt-get install shotcut

Y listo con ello se habrá instalado en el sistema.

Para el resto de las distribuciones de Linux contamos con 3 métodos generales para poder obtener resta aplicación.

La primera de ellas es mediante el uso de Flatpak, por lo que deben de tener el soporte para este tipo de aplicaciones a su sistema.

Después deben de abrir una terminal y en ella teclear el siguiente comando:

flatpak install flathub org.shotcut.Shotcut

Y listo con ello ya instalaron esta aplicación.

Otro método con el que contamos para poder obtener este editor es descargando la aplicación en su formato AppImage, el cual nos da la facilidad de poder utilizar esta aplicación sin necesidad de instalar o añadir cosas al sistema.

Para ello basta con abrir una y en ella ejecutar el siguiente comando:

wget https://github.com/mltframework/shotcut/releases/download/v18.11.18/Shotcut-181118.glibc2.14-x86_64.AppImage -O shotcut.appimage

Hecho esto ahora debemos de darle permisos de ejecución al archivo descargado con:

sudo chmod +x shotcut.appimage

Y finalmente podemos ejecutar la aplicación con el siguiente comando:

./shotcut.appimage

El ultimo método es con ayuda de los paquetes Snap y para instalar la aplicación debemos de ejecutar el siguiente comando:

sudo snap install shotcut --classic

El artículo Ya fue liberada la nueva versión de Shotcut 18.11 con nuevas mejoras y mas ha sido originalmente publicado en Linux Adictos.

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

For the King: el juego de rol estratégico trae actualización a Linux

For The King es un juego de rol estratégico en el que se combinan elementos de juego de mesa y roguelike, para dar vida a una interesante y desafiante aventura gráfica a través de diversos reinos del pasado. El título lo podréis encontrar disponible tanato en Humble Store como en Steam, de hecho, en Steam tiene un 50% de descuento actualmente. Ciertamente está también disponible en la tienda de videojuegos online GOG, pero en ese caso no se encuentra disponible la versión para Linux, y ciertamente no entiendo el por qué, ya que muchos títulos para la plataforma del pingüino se encuentran allí…

La noticia que hoy te traemos no es el lanzamiento del videojuego en sí, ya que eso ocurrió hace tiempo, pero sí que debes saber es que existe una nueva actualización gratuita del contenido, con importantes y llamativas novedades. Así que si no dispones de este título y te gusta, puedes adquirirlo desde ahora y hacerte también con esta extensión extra totalmente gratis y si ya disponías de él, pues con más motivo para que consigas ampliar sus capacidades con este update. El 21 de noviembre tuvimos esta nueva mejora totalmente gratis, que incluye una nueva y gran aventura para los juegadores que nos han aportado los desarrolladores. Si quieres conocer más detalles de lo que aporta este nuevo pack de mejoras, aquí te las listo:

  • Armas nuevas de disparo para afrontar las nuevas aventuras. Llegan tres diferentes clases incluyendo trabuco, mosquete y cañón.
  • También tenemos 4 tipos adicionales de barcos que podremos utilizar con esta actualización, con novedades internas.
  • Modo de combate en el barco agregado.
  • Nuevo tipo de enemigos: Suicidal. Que son los que causan daños masivos pero mueren en el proceso de ataque.
  • Nueva Isla Realms., Ashfal y Forest.
  • Nueva tecnología para los archipiélagos.
  • Nuevas mejoras para Sea Caves.
  • 20 nuevos items, 23 nuevas armas, 32 nuevos enemigos (8 nuevas razas), y mucho más…

Todo lo necesario para disponer de un nuevo y excitante modo de vivir las aventuras de For The King. ¿te atreves a ser el nuevo rey de los mares?

El artículo For the King: el juego de rol estratégico trae actualización a Linux ha sido originalmente publicado en Linux Adictos.

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

Se ha creado un nuevo método de RowHammer para evitar la protección ECC

Un grupo de investigadores de la Free University of Amsterdam ha desarrollado una nueva versión avanzada del ataque RowHammer, que permite cambiar el contenido de bits individuales en la memoria basada en chips DRAM, para proteger la integridad de los códigos de corrección de errores (ECC) que se aplican.

El ataque se puede realizar de forma remota con acceso no privilegiado al sistema, pues la vulnerabilidad de RowHammer puede distorsionar el contenido de los bits individuales de la memoria mediante la lectura cíclica de los datos de las celdas de memoria vecinas.

¿Qué es la vulnerabilidad RowHammer?

A lo que explican el grupo de investigadores sobre la vulnerabilidad de RowHammer, es que esta se basa en la estructura una memoria DRAM, pues básicamente esta es una matriz bidimensional de celdas de las cuales cada una de estas celdas consta de un capacitor y un transistor.

Con ello la lectura continua de la misma área de memoria conduce a fluctuaciones de voltaje y anomalías que causan una pequeña pérdida de carga de las celdas vecinas.

Si la intensidad de la lectura es lo suficientemente grande, la celda puede perder una cantidad de carga suficientemente grande y el siguiente ciclo de regeneración no tendrá tiempo de restaurar su estado original, lo que dará lugar a un cambio en el valor de los datos almacenados en la celda.

Una nueva variante de RowHammer

Hasta ahora, el uso de ECC se consideraba la forma más confiable de protegerse contra los problemas descritos anteriormente.

Pero los investigadores lograron desarrollar un método para cambiar los bits de memoria especificados que no activaban un mecanismo de corrección de errores.

El método se puede utilizar en servidores con memoria ECC para modificar los datos, sustituir códigos maliciosos y cambiar los derechos de acceso.

Por ejemplo, en ataques RowHammer demostrados anteriormente, cuando un atacante tenía acceso a una máquina virtual, las actualizaciones del sistema malintencionado se descargaron a través de un cambio en el proceso de apt del nombre del host para descargar y modificar la lógica de verificación de la firma digital.

¿Cómo actúa esta nueva variante?

Lo que explican los investigadores sobre este nuevo ataque es que el recorrido de ECC se basa en características de corrección de errores: si se cambia un bit, el ECC corregirá el error, si se generan dos bits, se generará una excepción y el programa se terminará por la fuerza, pero si se cambian tres bits simultáneamente, es posible que el ECC no note la modificación.

Para determinar las condiciones bajo las cuales la verificación ECC no funciona, se ha desarrollado un método de verificación similar al de la carrera que permite evaluar la posibilidad de un ataque para una dirección específica en la memoria.

El método se basa en el hecho de que, al corregir un error, el tiempo de lectura aumenta y el retraso resultante es bastante medible y notable.

El ataque se reduce a intentos sucesivos de cambiar cada bit individualmente, determinando el éxito del cambio por la aparición de un retraso causado por un ajuste de ECC.

Por lo tanto, se realiza una búsqueda de palabras de máquina con tres bits variables. En la última etapa, es necesario asegurarse de que los tres bits mutables en dos lugares sean diferentes, y luego tratar de cambiar su valor en una sola pasada.

Sobre la demostración

Los investigadores demostraron con éxito la posibilidad de un ataque en cuatro servidores diferentes con memoria DDR3 (teóricamente vulnerable y memoria DDR4), tres de los cuales estaban equipados con procesadores Intel (E3-1270 v3, Xeon E5-2650 v1, Intel Xeon E5-2620 v1), y uno AMD (Opteron 6376).

En la demostración se observa que la búsqueda de la combinación requerida de bits en el laboratorio en un servidor inactivo toma alrededor de 32 minutos.

Hacer un ataque a un servidor en ejecución es mucho más difícil debido a la presencia de interferencias que surgen de la actividad de la aplicación.

En los sistemas de producción, puede llevar hasta una semana encontrar la combinación requerida de bits intercambiables.

El artículo Se ha creado un nuevo método de RowHammer para evitar la protección ECC ha sido originalmente publicado en Linux Adictos.

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

Docker 18.09 extiende el ciclo de soporte, reenvío SSH y mas

Hace algunos días los desarrolladores de Docker dieron a conocer una nueva versión de su software llegando este a la versión 18.09 con la cual se representa un avance significativo del motor de contenedores líder del mundo.

Con este nuevo lanzamiento de Docker los desarrolladores han introducido nuevas arquitecturas  y características que mejoran el rendimiento del contenedor y aceleran la adopción para cada tipo de usuario de Docker, ya sea un desarrollador, un administrador de TI, trabajando en una startup o en Una gran empresa establecida.

Principales novedades de Docker 18.09

Docker acaba de lanzar la versión 18.09 para CE y EE con muchas características nuevas e interesantes y correcciones de errores.

De los principales puntos a destacar de este nuevo lanzamiento es que ahora se puede usar el motor BuildKit.

Este es un nuevo motor para construir y empaquetar software utilizando contenedores. Es un nuevo código base destinado a reemplazar los componentes internos de las características de compilación actuales en Moby Engine.

Las características específicas de la versión EE del motor Docker incluyen:

  • Cumplimiento de FIPS agregado para Windows Server 2016 y versiones posteriores
  • Docker Content Trust Enforcement para Enterprise Engine. Esto permite que Docker Engine – Enterprise ejecute contenedores no firmados por una organización específica.

También se puede destacar que se ha introducido una nueva directiva “#syntax”, que permite incluir extensiones de análisis de Dockerfile.

Se agregó la capacidad de usar BuildKit sin incluir el modo experimental y se ha recibido una API actualizada a la versión 1.39.

Por otro lado, se agregó soporte para acceso remoto utilizando SSH y un nuevo comando “docker engine” para controlar el ciclo de vida de Docker Engine, que se ejecuta en un contenedor privilegiado separado basado en containererd.

Ciclo de desarrollo extendido

A partir de Docker 18.09, el tiempo de soporte de lanzamiento se ha incrementado de 4 a 7 meses debido a la modernización del ciclo de desarrollo de Docker Community Edition (los lanzamientos estables ahora se forman no una vez por trimestre, sino una vez cada seis meses).

Posibilidad de integrar Build-time secrets

Una de las complejidades al usar Dockerfiles siempre ha sido acceder a los recursos privados. Por lo que se si se necesitaba acceder a algún repositorio o servicio privado, realmente no existía una buena para lograrlo.

El comando de compilación Docker 18.09 viene con muchas actualizaciones nuevas. Lo más importante es que ahora se puede usar una implementación de backend completamente nueva proporcionada por el proyecto Moby BuildKit.

El backend de BuildKit viene con un montón de nuevas características, una de ellas es el soporte de secretos de construcción en Dockerfiles.

La implementación de Build secrets se basa en dos características nuevas proporcionadas por BuildKit. Una es la capacidad de usar frontends de constructor personalizados cargados de imágenes en el registro, y la otra es la posibilidad de usar montajes en RUNcomandos para Dockerfiles.

Mejoras en BuildKit

Docker 18.09 también incluye una nueva arquitectura de compilación que mejora el rendimiento, la administración del almacenamiento y la extensibilidad, al mismo tiempo que agrega algunas características nuevas e importantes:

Las mejoras de rendimiento BuildKit incluye un modelo rediseñado de concurrencia y almacenamiento en caché que lo hace mucho más rápido, más preciso y portátil.

Por ejemplo, cuando se prueba Dockerfile proyecto Moby conjunto de velocidad aumentado de 2 a 9,5 veces debido a la ejecución simultánea de varias etapas de montaje, haciendo caso omiso de los pasos no utilizados y los archivos de datos incrementales entre los conjuntos en vista del contexto.

Esta nueva implementación también soporta estos nuevos modelos operativos:

  • Etapas paralelas de construcción
  • Omitir etapas no utilizadas y archivos de contexto no utilizados
  • Transferencia incremental de contexto entre compilaciones

De las demás características que se pueden destacar, encontramos:

  • Bases de comandos bash y zsh de entrada actualizados.
  • Se ha agregado un nuevo controlador de registro local, que permite que el registro se almacene en un archivo local. A diferencia de jsonfilelog, el nuevo controlador no está vinculado a un formato de registro específico.
  • Se agregó soporte para usar el conjunto de direcciones global predeterminado.
  • Basado en el Docker Engine 18.09, se formó un producto comercial Docker Enterprise 2.1, que incluye la entrega de complementos adicionales, soporte para el SLA ( Acuerdo de nivel de servicio ) y medios para verificar con firmas digitales.

El artículo Docker 18.09 extiende el ciclo de soporte, reenvío SSH y mas ha sido originalmente publicado en Linux Adictos.

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

LIBRECON 2018: resumen de las jornadas

LIBRECON powered by CEBIT congregó a más de 1200 asistentes en esta última edición de 2018. La conferencia referente en tecnologías abiertas del sur de Europa ha tenido lugar en España, organizada por la Asociación de Empresas de Tecnologías Libres y Conocimiento Abierto de Euskadi (ESLE) y también por su homóloga estatal ASOLIF. Se estima que el impacto económico ha llegado al medio millón de euros para la ciudad de Bilbao donde tuvo lugar durante los pasasos días de noviembre.

Allí se han dado lugar numerosos eventos de divulgación sobre tecnologías abiertas para el sector industrial, finanzas y administración pública, además de haber recogido a unas 500 reuniones de profesionales líderes en el sector, con los 70 ponentes, 40 exposiciones y la presencia de 600 empresas referentes en el sector tecnológico como nos hicimos eco cuando anunciamos el evento y la venta de las entradas para esta edición.

Cerrada esta octava edición, solo podemos decir que ha sido un año más todo un éxito. Ha sido la tercera vez que se ha elegido Bilbao como sede y este año ha contado con presencia internacional mucho más pronunciada que otros años pasados. Se pueden destacar empresarios del Círuclo Hispano-Alemán, Open Forum Europe, CEBIT, OSADL, CNLL, ESOP, Aquinetic, además de empresas de la talla de Red Hat, IBM, Hitachi, Mozilla, y un largo etc., o personas como Richard Stallman…

El balance final ha sido muy positivo, como bien han valorado los dos organizadores. Espero que más allá del impacto económico para Bilbao por el gasto realizado por todos los asistentes durante los días que ha durado, también deje muchas cosas buenas para todo el país en cuanto al sector tecnológico y que las administraciones y demás asistentes se comprometan un poco más con la necesidad de apoyar este tipo de tecnologías abiertas en detrimento del uso del software propietario y tecnologías cerradas que se suelen emplear.

Por cierto, y no me gutaría acabar sin decir que también se han entregado los Librecon Awards como es habitual, clausurando con ellos el evento el último día y premiando a diferentes entidades y personas por su contricuciones al mundo open. El Premio a la empresa Open con mayor impacto global ha ido para Red Hat, el Premio al mejor ponente internacional para Carsten Emde de OSADL, Premio al mejor caso de éxito de transformación digital para GFI, Premio a mejor charla técnica de Librecon a Nestor Salceda de Sysgdig, y el Premio a la mejor estrategia en transformación digital en la administración pública para la Diputación Foral de Bizkaia.

El artículo LIBRECON 2018: resumen de las jornadas ha sido originalmente publicado en Linux Adictos.

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

Ya fue liberada la primer Release Candidate de Kodi 18.0

A poco de más de dos semanas después del lanzamiento de la quinta y última versión beta de Kodi, ahora tenemos el primer RC (Release Candidate) en nuestras manos.

Esto significa que los desarrolladores de Kodi están cerca de terminar de construir lo que vendrá a ser la próxima versión Kodi 18 Leia, que se lanzará antes de fin de año.

Como pueden imaginar, se ha realizado un gran trabajo en la última versión importante de Kodi. Según una publicación en el blog de Kodi, los desarrolladores y voluntarios de Kodi han estado trabajando durante dos años en el lanzamiento de Kodi 18 Leia.

Durante ese tiempo, se eliminó, reemplazó, modificó un montón de código y se agregaron muchas características nuevas.

Para aquellos que aún desconocen de Kodi les puedo decir que este es un centro de medios que se pueden utilizar para reproducir casi todos los formatos populares de audio y vídeo.

Con Media Center Kodi permite además el poder reproducir CD y DVD directamente desde el archivo de disco o de una imagen, y soporta casi todos los formatos populares de archivos multimedia, incluso puede reproducir archivos dentro de los archivos ZIP y RAR.

Novedades del Kodi 18 RC 1

Kodi 18 es la próxima gran actualización de dos años en desarrollo que incluye soporte para juegos RetroPlayer, soporte para Google Assistant, mejor soporte para Windows y UWP, mejores características de TV en vivo, mucho mejor soporte a Wayland, mejor estabilidad y muchas otras mejoras.

Actualmente, es muy común que los propietarios y los proveedores de contenido protejan su contenido con cifrado.

Nuevo DRM

Con la versión 18, se agregó la capacidad de reproducir ese contenido de la forma en que fue realmente deseado por el sistema DRM.

Dependiendo del hardware usado y de la licencia incluida, puede reproducir este contenido, que generalmente también viene con un servicio de firma.

Aun que ya existen varios add-ons disponibles en el repositorio del programa que ya usan esa característica, y en breve, esto hará que los proveedores de contenido ofrezcan sus servicios como un complemento oficial.

Nueva apariencia

En cuanto a lo que es la interfaz de usuario se han añadido pequeños cambios y mejoras. Algunos pueden no ser perceptibles, pero deben de mejorar la utilidad general.

Cada versión principal de Kodi trae cambios a la interfaz de usuario. Es por eso que los desarrolladores de skins de Kodi necesitan actualizarlos para hacerlos compatibles. En este momento, no tenemos muchas máscaras compatibles.

Además, la sección de configuración ha pasado por algunas modificaciones también. Por lo tanto, es muy recomendable que pasen por todas las secciones de configuración y ajustarlas a su gusto.

Para completar, en la parte inferior de la interfaz, hay una pequeña descripción extendida sobre lo que cada configuración hace.

Mejoras para la Música y video

La sección de música también ha ganado mucha mejora para aquellos que se preocupan mucho en tener una biblioteca de música limpia.

Las características del Kodi de Live TV y su front-end de grabación son uno de los recursos menos conocidos, ya que requiere conocimiento y ajustes para configurar.

Para poder utilizar esto, necesitaran algún hardware extra, como un sintonizador USB o un sintonizador de red, como el HDHomerun, para obtener la señal de cable o ether convertido en una secuencia de vídeo.

Lo que se ha hecho a lo largo del tiempo es mejorar la usabilidad y la estabilidad de este componente y tratar de convertirlo en un óptimo sustituto para su decodificador normal a cabo / éter.

Por el momento, no hay fechas concretas para Kodi 18 Leia. Sin embargo, una cosa es segura: nos estamos acercando a esa fecha. Los desarrolladores de Kodi deberían lanzar pronto el segundo Release Candidate, que será seguido por la versión final.

En caso de que quieras probar Kodi 18 RC1, debes visitar la página de descarga oficial . A partir de ahí, elijan su sistema operativo y luego elija la pestaña ‘Versión preliminar’. Aquí es donde verá Kodi 18 RC1 disponible para descargar.

El artículo Ya fue liberada la primer Release Candidate de Kodi 18.0 ha sido originalmente publicado en Linux Adictos.

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