Chrome ya contara con la compatibilidad de WebGPU y sera activado de manera pretederminada

WebGPU Chrome

Después de años de desarrollo, el equipo de Chrome lanza WebGPU

Hace pocos días Google dio a conocer mediante uno anunció el soporte predeterminado para la API de gráficos WebGPU y el lenguaje de sombreado WebGPU (WGSL) en la rama Chrome 113, cuyo lanzamiento está programado para el 2 de mayo.

Para quienes desconocen de WebGPU, deben saber que proporciona una API similar a Vulkan, Metal y Direct3D 12 para realizar operaciones del lado de la GPU, como el procesamiento y el cálculo, y también le permite usar un lenguaje de sombreado para escribir programas del lado de la GPU.

Sobre WebGPU

Conceptualmente, WebGPU difiere de WebGL de la misma manera que la API de gráficos de Vulkan difiere de OpenGL, pero WebGPU no se basa en una API de gráficos específica, sino que es una capa de uso general que utiliza las mismas primitivas de bajo nivel que se encuentran en Vulkan. Metal y Direct3D. WebGPU proporciona a las aplicaciones de JavaScript un control de bajo nivel sobre la organización, el procesamiento y la transmisión de comandos a la GPU, la gestión de los recursos asociados, la memoria, los búferes, los objetos de textura y los sombreadores de gráficos compilados. Este enfoque le permite lograr aplicaciones gráficas de mayor rendimiento al reducir la sobrecarga y aumentar la eficiencia de la GPU.

WebGPU permite crear proyectos 3D complejos para la Web que funcionan tan bien como programas independientes que utilizan directamente Vulkan, Metal o Direct3D, pero que no están vinculados a plataformas específicas. La WebGPU también proporciona opciones adicionales para portar programas de gráficos nativos a un formulario habilitado para la web mediante la compilación en WebAssembly. Además de los gráficos 3D, WebGPU también cubre las posibilidades asociadas con la descarga de cálculos al lado de la GPU y la ejecución de sombreadores.

De las características clave de WebGPU, podemos destacar las siguientes:

  • Gestión separada de recursos, trabajo preparatorio y transmisión de comandos a la GPU (en WebGL, un objeto era responsable de todo a la vez). Se proporcionan tres contextos separados: GPUDevice para crear recursos como texturas y búferes; GPUCommandEncoder para codificar comandos individuales, incluidas las etapas de procesamiento y cálculo; GPUCommandBuffer para pasar a la cola de ejecución de GPU.
    El resultado puede representarse en un área asociada con uno o más elementos del lienzo, o procesarse sin salida (por ejemplo, al ejecutar tareas computacionales). La separación de etapas facilita la separación de las operaciones de creación y aprovisionamiento de recursos en diferentes controladores que pueden ejecutarse en diferentes subprocesos.
  • Un enfoque diferente para el manejo de estados. WebGPU proporciona dos objetos, GPURenderPipeline y GPUComputePipeline, que le permiten combinar diferentes estados predefinidos por el desarrollador, lo que hace posible que el navegador no desperdicie recursos en trabajo adicional, como volver a compilar sombreadores. Los estados admitidos incluyen: sombreadores, búfer de vértices y diseños de atributos, diseños de grupos fijos, mezcla, profundidad y patrones, formatos de salida posteriores al renderizado.
  • Un modelo vinculante, muy parecido a las herramientas de agrupación de recursos de Vulkan. Para agrupar recursos en grupos, WebGPU proporciona un objeto GPUBindGroup que se puede vincular a otros objetos similares para usar en sombreadores durante la grabación de comandos.
    La creación de dichos grupos permite que el controlador realice las acciones preparatorias necesarias con anticipación y permite que el navegador cambie los enlaces de recursos entre llamadas de dibujo mucho más rápido. El diseño de los enlaces de recursos se puede predefinir mediante el objeto GPUBindGroupLayout.

Además de Chrome, el soporte WebGPU experimental se ha probado desde abril de 2020 en Firefox y desde noviembre de 2021 en Safari. Para habilitar WebGPU en Firefox, se debe configurar los indicadores dom.webgpu.enabled y gfx.webgpu.force-enabled en about:config.

Aún no hay planes para habilitar WebGPU de forma predeterminada en Firefox y Safari. Las implementaciones de WebGPU desarrolladas para Firefox y Chrome están disponibles en forma de bibliotecas separadas: Dawn (C++) y wgpu (Rust) que puede usar para integrar la compatibilidad con WebGPU en sus aplicaciones.

También cabe destacar que se está trabajando para agregar compatibilidad con WebGPU a bibliotecas populares de JavaScript de forma nativa utilizando WebGL. Por ejemplo, el soporte completo de WebGPU ya está declarado en Babylon.js y parcial enThree.js , PlayCanvas y TensorFlow.js.

La implementación de WebGPU solo se habilitará inicialmente en compilaciones para ChromeOS, macOS y Windows, mientras que para Linux y Android, la compatibilidad con WebGPU se activará en una fecha posterior.

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

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

LA FSF dio a conocer los ganadores del premio anual por contribución al software libre

fsf-award-jami

Sébastien Blin (izquierda) y Cyrille Béraud (derecha) recibiendo el Premio a Proyectos de Beneficio Social en nombre de GNU Jami.

Hace ya algunos días se celebro la conferencia LibrePlanet 2023, en la cual se organizó una ceremonia de entrega de premios para anunciar a los ganadores de los «Premios al software libre 2022» anuales.

Estos premios son establecidos por la Free Software Foundation (FSF) y otorgados a las personas que han realizado la contribución más significativa al desarrollo del software libre, como así como proyectos gratuitos socialmente significativos.

Los ganadores recibieron actas y certificados conmemorativos (el premio FSF no implica una recompensa monetaria). El Premio de Promoción y Desarrollo de Software Libre fue para Eli Zaretskii, uno de los mantenedores de GNU Emacs, quien ha estado involucrado en el desarrollo del proyecto durante más de 30 años. Eli Zaretsky también ha estado involucrado en el desarrollo de GNU Texinfo, GDB, GNU Make y GNU Grep.

En su aceptación registrada del premio, Zaretskii dijo:

«La verdad es que mi contribución al software libre en general y al desarrollo de Emacs en particular es bastante modesta, ciertamente en comparación con aquellos que ganaron este premio antes que yo. [..] E incluso mi logro modesto como desarrollador de Emacs y últimamente co-mantenedor habría sido imposible sin todos los demás colaboradores y la comunidad de Emacs en su conjunto Ningún proyecto significativo de software libre se puede desarrollar, mantener y llevar adelante sin la participación y el apoyo de sus miembros. Y Emacs no es una excepción».

En su mensaje grabado en honor a Zaretskii, Richard Stallman, autor original de GNU Emacs y Jefe GNUisance del Proyecto GNU dijo:

«El primer paquete GNU que lanzamos, el primero que la gente realmente comenzó a usar, fue GNU Emacs a principios 1985. Durante muchos años, fui el principal mantenedor de GNU Emacs, pero luego llegaron otros para hacer el trabajo, y no he estado muy involucrado en el desarrollo de Emacs durante muchos, muchos años. Hoy en día, nuestro principal mantenedor de Emacs es extremadamente diligente y concienzudo y ha provocado un renacimiento en nuevas características y nuevos paquetes agregados a Emacs, y el resultado es muy impresionante. Así que estoy feliz de otorgar el Premio al Software Libre a Eli Zaretskii, principal mantenedor de GNU Emacs. Gracias para tu trabajo.»

En la categoría otorgada a proyectos que han aportado importantes beneficios a la sociedad y contribuido a la solución de importantes problemas sociales, el premio fue otorgado al proyecto GNU Jami (anteriormente conocido como Ring y SFLphone), que desarrolla una plataforma de comunicación descentralizada tanto para grandes comunicaciones grupales y llamadas individuales con un alto nivel de privacidad y seguridad. La plataforma admite la conexión directa entre usuarios (P2P) mediante cifrado de extremo a extremo.

En la categoría Contribución destacada de nuevo colaborador al software libre, que honra a los recién llegados cuyas primeras contribuciones muestran un compromiso visible con el movimiento del software libre, el premio fue para Tad (SkewedZeppelin), el líder del proyecto DivestOS, que mantiene una bifurcación de LineageOS, la plataforma móvil de Android que elimina todos aquellos componentes no libres. Anteriormente, Tad también estuvo involucrado en el desarrollo del firmware de Android Replicant.

Al recibir el premio, Tad dijo:

«En la comunidad virtual que se ha formado a su alrededor, junto con las áreas circundantes, me he esforzado por ayudar a los usuarios a darse cuenta de la importancia del software libre y, como tal, agradezco a la FSF por reconocer Establece que he hecho mella, y planeo seguir haciéndolo en los próximos años. Como nota final, quiero recordarles a todos que, en última instancia, se diviertan y no se olviden de disfrutar de nuestras cortas vidas en esta pelota. lanzándose a través del espacio. Gracias».

Por último y no menos importante, tambien nos gustaría recordar a los últimos ganadores de los premios al Software Libre

  • En 2021 Paul Eggert, responsable de mantener la base de datos de zonas horarias utilizada por la mayoría de los sistemas Unix y todas las distribuciones de Linux.
  • En 2020 Bradley M. Kuhn, director ejecutivo y miembro fundador de Software Freedom Conservancy (SFC).
  • En 2019 Jim Meyering, mantenedor del paquete GNU Coreutils desde 1991, coautor de autotools y creador de Gnulib.
  • En 2018 Deborah Nicholson, directora de participación comunitaria, Software Freedom Conservancy.
  • En 2017 Karen Sandler, Directora, Software Freedom Conservancy.
  • En 2016 Alexandre Oliva, promotor y desarrollador brasileño de software libre, fundador de la Fundación Latinoamericana de Código Abierto, autor del proyecto Linux-Libre (una versión completamente libre del kernel de Linux).
  • En 2015 Werner Koch, creador y desarrollador principal del kit de herramientas GnuPG (GNU Privacy Guard);

Finalmente, si estás interesado en poder conocer más al respecto, puedes consultar la publicación original en el siguiente enlace.

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

Qt 6.5 llega como versión LTS y corrige muchos errores e introduce mejoras generales

qt-6

En la sexta versión de la serie Qt 6, presentamos muchas funciones nuevas para los desarrolladores de gráficos e interfaz de usuario y el backend de la aplicación

The Qt Company dio a conocer hace pocos días el lanzamiento de la nueva versión del marco «Qt 6.5» , en el que el trabajo continúa para estabilizar y aumentar la funcionalidad de la rama Qt 6.

Qt 6.5 recibió el estado de una versión LTS, dentro de la cual se generarán actualizaciones para los usuarios de licencias comerciales dentro de los tres años (para el resto, las actualizaciones se publicarán seis meses antes de la formación de la próxima versión importante). El soporte para la rama LTS anterior de Qt 6.2 durará hasta el 30 de septiembre de 2024. La sucursal de Qt 5.15 se mantendrá hasta mayo de 2025.

Principales novedades de Qt 6.5

En esta nueva versión que se presenta de QT 6.5, se destaca que el módulo Qt Quick 3D Physics, que proporciona una API para simular procesos físicos que se pueden usar con Qt Quick 3D para una interacción y movimiento realistas de objetos en escenas 3D, se ha estabilizado y se ha hecho totalmente compatible. La implementación se basa en el motor PhysX.

Otro de los cambios que se destaca de la nueva versión, es que se agregó soporte para el modo oscuro del diseño de Windows, asi´como tambien una aplicación automática habilitada del diseño oscuro activado en el sistema y configuración de marcos y título si la aplicación usa un estilo que no cambia la paleta. En una aplicación, se puede personalizar su propia reacción a los cambios en el tema del sistema procesando la propiedad QStyleHints::colorScheme.

En Qt Quick Controls, el estilo Material para Android se ha alineado con las recomendaciones de Material 3, ademas de que se ha implementado un estilo completo para iOS y se agregaron API para cambiar la apariencia (por ejemplo, containerStyle para TextField o TextArea, o roundedScale para botones y ventanas emergentes).

Para Wayland, se agregó la API QNativeInterface::QWaylandApplication para acceder directamente a los objetos nativos de Wayland que se usan en las funciones internas de Qt, así como para acceder a la información sobre las acciones recientes del usuario, que puede ser necesario pasar a las extensiones del protocolo Wayland. La nueva API se implementa en el espacio de nombres QNativeInterface, que también proporciona llamadas para acceder a las API nativas de las plataformas X11 y Android.

Ademas de ello, tambien se destaca que se agregó el soporte para la plataforma Android 12 y, a pesar de los cambios significativos en esta rama, se mantuvo la capacidad de crear ensamblajes universales para Android, que pueden funcionar en dispositivos con diferentes versiones de Android, comenzando con Android 8.

Se ha actualizado la pila Boot2Qt, que se puede utilizar para crear sistemas móviles de arranque con un entorno basado en Qt y QML. El entorno del sistema en Boot2Qt se ha actualizado a la plataforma Yocto 4.1 (Langdale).
Los paquetes para Debian 11 han comenzado y cuentan con soporte comercial.

Las capacidades de la plataforma WebAssembly se han ampliado, lo que le permite crear aplicaciones Qt que se ejecutan en un navegador web y son portátiles entre diferentes plataformas de hardware. Las aplicaciones creadas para la plataforma WebAssembly, gracias a la compilación JIT, se ejecutan con un rendimiento cercano al código nativo, pueden usar Qt Quick, Qt Quick 3D y las herramientas de visualización disponibles en Qt. La nueva versión agrega soporte para renderizado de video y el uso de herramientas para personas con discapacidad en widgets.

El motor web Qt WebEngine se actualizó a la base de código Chromium 110, ademas de que en Linux, se implementa la compatibilidad con la representación de video acelerada por hardware cuando se utiliza la API de gráficos Vulkan en entornos basados ​​en X11 y Wayland.

De los demás cambios que se destacan:

  • Se agregó un módulo Qt GRPC experimental con soporte para protocolos gRPC y Protocol Buffer, que le permite acceder a servicios gRPC y serializar clases Qt usando Protobuf.
  • En macOS, se garantiza que las aplicaciones que usan QMessageBox o QErrorMessage mostrarán cuadros de diálogo nativos de la plataforma.
  • Se agregó soporte para configurar conexiones HTTP 1 en el módulo Qt Network .
    Se agregaron clases de bus CAN experimentales al módulo Qt Serial Bus, que se puede usar para codificar y decodificar mensajes CAN, procesar marcos y analizar archivos DBC.
  • El tipo QML de TableView implementa funciones interactivas, como editar celdas en su lugar, cambiar el tamaño de filas y columnas y seleccionar varias celdas.
  • Se agregó compatibilidad con la representación estereoscópica a la clase QOpenGLWidget proporcionada en el módulo Qt Widgets.
  • Se ha trabajado mucho para mejorar la estabilidad, se han cerrado alrededor de 3500 informes de errores.

Si deseas conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Descargar y obtener Qt 6.5

Para los interesados en la nueva rama de Qt 6.5 deben saber que se brinda soporte para Windows, macOS, plataformas Linux, iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY y QNX. El código fuente de los componentes Qt se proporciona bajo las licencias LGPLv3 y GPLv2.

La nueva versión la pueden obtener en el siguiente enlace.

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

Cómo elegir un reproductor de audio de código abierto

Linux tiene muchos reproductores de audio

Hay rubros en los que el software libre y de código abierto está repleto de opciones, uno de ellos es el de los reproductores multimedia. En este artículo te diremos cómo elegir un reproductor de audio de código abierto además de recomendarte algunos títulos que puedes instalar tanto desde los repositorios oficiales como desde las distintas tiendas de aplicaciones.

Aunque hay mucho que decir a favor de las plataformas de streaming: actualización del catálogo, ser multidispositivo, no requerir demasiado espacio de almacenamiento etc., también es bastante lo que se puede argumentar del lado del almacenamiento local: la privacidad de los datos, el ser dueño de tu colección de música y la no necesidad de estar conectado, aunque sea ocasionalmente a Internet. No soy un entendido en música, pero supongo que, dependiendo del formato la calidad del audio debe ser superior.

Cómo elegir un reproductor de audio de código abierto

Existen varios criterios para determinar que reproductor de audio utilizar. Algunos de ellos son:

Uso

Si solo escuchamos música ocasionalmente o no queremos tener demasiados programas instalados un reproductor multimedia como VLC o SMPlayer pueden ser una gran opción.

Si tienes una gran colección de discos, Rhythmbox, el reproductor de audio del proyecto GNOME cuenta con diversas herramientas para ordenar y reproducir grandes colecciones de música.

La música no es el único contenido de audio, también están los podcasts y las radios online.  Con Clementine puedes reproducirlos, además de hacerlo con música almacenada en servicios en la nube y descargar portadas de discos.

Formatos

La música digital viene en varios formatos: Algunos de los más comunes son:

  • MP3: Sigla para MPEG-1 Audio Layer 3. Se trata del formato de audio más popular. por lo que lo difícil es encontrar un reproductor que no sea compatible. Ofrece una combinación razonable de calidad de audio peso del archivo. Sin embargo, al ser un formato comprimido si eres un fanático de la pureza musical puede que no sea para ti.
  • WAV: Es el acrónimo de Waveform Audio File Format. Tiene una calidad de audio sin compresión, pero da como resultado archivos más pesados.
  • FLAC: Abreviatura de Free Lossless Audio Codec. Combina lo mejor de los otros dos ya que son archivos más livianos, pero sin pérdida de calidad.
  • AAC: La sigla significa Advanced Audio Coding y describe un formato de archivo que a igual tamaño de un archivo mp3 ofrece una calidad mejor.
  • OGG: (Ogg Vorbis): Brinda una calidad similar al mp3 con un tamaño de archivo menor.
  • AIFF: Acrónimo de Audio Interchange File Format: Es un formato sin compresión, aunque los archivos suelen ser más pesados que los de WAV.
  • WMA: El formato de audio nativo de Windows.

Amarok, el reproductor de audio del proyecto KDE reproduce estos formatos..

Interfaz de usuario

Si no quieres tener un reproductor a pantalla completa una buena alternativa es Audacious. Tiene todas las facilidades de un completo reproductor de audio, pero su interfaz personalizable ocupa solo una pequeña interfaz de la pantalla.

La terminal de Linux tiene sus fanáticos, la instalación manual de paquetes también. Si entras en las dos categorías MOC te va a encantar.

Una aclaración, redacté el artículo tratando de incluir la mayor cantidad de títulos posible. Que un título esté mencionado en una de las características no significa que no tenga la de los demás.

Edición de audio

Algunos de los reproductores tienen funciones básicas de edición de audio. Sin embargo, si buscas una solución más completa puedes probar Audacity o alguna de estas otras alternativas.

Todos estos programas están disponibles para Windows, Linux y Mac. En Linux los encontrarás en los repositorios y en las tiendas de Flatpak y Snap.

Para los usuarios de Android tampoco faltan alternativas de código abierto. Por ejemplo, tenemos a TurtlePlayer, un reproductor muy sencillo que también puede descargar el arte del disco. Snapcast por otra parte, permite hacer que múltiples dispositivos reproduzcan de manera sincronizada el mismo archivo de audio.

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

No hay una mejor distro Linux

No hay una mejor distro Linux como verdad indiscutible. Depende de cada usuario.

Les voy a contar un secreto, no hay una mejor distro Linux. A los escritores freelance nos pagan por artículo y para pagarle a nuestros acreedores tenemos que generar una determinada cantidad de contenidos por mes. Por eso escribimos cosas como esas listas.

Es cierto que hay distribuciones mejor o peor hechas. Tal vez debería cambiar mi afirmación a existen tantas mejores distribuciones Linux como usuarios.

¿Por qué no hay una mejor distro Linux?

Arch Linux es una distribución Linux muy popular entre quienes disfrutan controlar manualmente cada aspecto de la instalación. Por supuesto, que, tratándose de un proyecto de software libre, no tardaron en aparecer herramientas que automatizan la instalación.

Cuando un contacto de Twitter subió un video explicando cómo usar una de esas herramientas le dije en broma que era como ir a Italia a comer en un Mc Donald’s. La gracia de Arch es la instalación manual. Lo que yo dije en broma otros lo piensan en serio, parece que a muchos integrantes de la comunidad Arch no les gusta que se compartan videos explicando el proceso de instalación. Léete el maldito manual, Googlea o instálate Manjaro.

En los primeros tiempos de Ubuntu había un script llamado Automatix que te facilitaba la instalación de codecs multimedia y el reproductor Flash. Su uso fue declarado pecado mortal por los guardianes de la pureza debianita.  El motivo declarado fue que no respetaba las reglas del Proyecto Debian para la descripción de paquetes. El verdadero motivo es que no solo instalaba programas que ningún defensor del software libre usaría jamás, sino que además automatizaba la instalación.

Esta mañana me topé con un artículo prometiendo una lista de las mejores distribuciones Linux para desarrolladores del 2023. Teniendo en cuenta que todavía nos quedan las tres cuartas partes del año y, que las distribuciones principales no hicieron todavía sus lanzamientos, resulta un poco apresurado.

Además, el criterio de selección es discutible. Figuran algunas solo por poner en la documentación información sobre cómo instalar los diferentes lenguajes y herramientas y omite otras como Red Hat Enterprise Linux (Se puede usar en forma gratuita si eres desarrollador) que incluye herramientas para programar y trabajar con contenedores y la nube. Por no mencionar todas las derivadas de CentOS.

Mi punto es que la mejor distribución es la que te resulta mejor a ti y, eso no siempre se basa en parámetros racionales. Llevo años en este blog defenestrando todos los lanzamientos de Ubuntu porque me parecen aburridos y no aportan nada. Sin embargo, lo que se está viendo de Ubuntu 23.04 me gustó.

¿Qué cambió?

No demasiado, un instalador que facilita la instalación en UEFI y poco más incluyendo el más horrendo fondo de escritorio de la historia de Ubuntu. Sin embargo, siento que usarla es una experiencia placentera y no el rechazo que suele provocarme GNOME.

Cómo elegir la mejor distribución Linux para ti

Está claro que cuántas más distribuciones Linux pruebes, más fácil resultará encontrar la que te guste.  Sin embargo, hay formas de reducir la lista: He aquí algunos parámetros:

  • Propósito: Aunque cualquier distribución Linux puede personalizarse para cualquier actividad, hay algunas que ya vienen personalizadas para distintos objetivos como juegos, educación, producción multimedia, investigación científica etc.
  • Automatización: Como ya mencionamos, existen distribuciones Linux en las que el proceso de instalación y configuración se hace en forma manual y otras que cuentan con un asistente que se ocupa de casi todo.
  • Soporte: Algunas distribuciones Linux cuentan con un soporte técnico (De pago) y otras con comunidades más o menos activas que responden las preguntas de los usuarios.
  • Actualizaciones y nuevas versiones: Algunas distribuciones Linux sacan nuevas versiones regularmente y cuando se termina el soporte a la versión que tienes instalada debes actualizar a o instalar desde cero la nueva. Otras en cambio, tienen un modelo de actualización continua.
  • Variedad de programas: Las distribuciones Linux tienen sus propios repositorios de programas y además existen repositorios opcionales que permiten instalar software sin importar la distribución. Pero, existen todavía bastantes programas que solo están disponibles para el formato de paquete nativo de una sola familia de distribuciones.

¿Quieres contarme cuál es para ti la mejor distribución y por qué? Ahi abajo está el formulario de comentarios. Me encantará leerte.

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

yt-dlp, fork/sucesor del descontinuado youtube-dl que permite descargar vídeos de decenas de plataformas

yt-dlpHace ya unos 5 años, mi por aquel entonces aún no compañero Darkcrizt publicó un artículo hablando de youtube-dl, un programa escrito en Python que nos permitía descargar vídeos de decenas de sitios desde el terminal. youtube-dl era el motor que movía muchos programas, pero su desarrollador decidió abandonarlo a finales 2021 (última versión, 2021-12-17). Como ha ocurrido con muchos otros proyectos, otros decidieron seguir adelante creando un fork, y ahora la mejor opción para descargar vídeos se llama yt-dlp.

Lo que suele pasar también cuando alguien recoge el testigo que otro suelta es que trata de mejorar lo existente, y eso es algo que el equipo de yt-dlp se encarga de remarcar hasta el punto de añadir en su imagen oficial que es «un fork de youtube-dl con funciones y correcciones añadidas«. Para la mayoría de casos, esas funciones añadidas están como extra, pero lo más importante, en mi opinión, son las correcciones. Dicho de otro modo, que se sigan lanzando actualizaciones, porque es habitual que los servicios de vídeos hagan cambios y terminen rompiendo la compatibilidad.

Cómo instalar y usar yt-dlp

Poderse, se puede hacer de diferentes maneras, pero yo recomendaría hacerlo por medio del gestor de paquetes de Python pip. Si alguien está en una distribución como un derivado de Arch Linux y decide pensar «¿Para qué, si está en AUR?» o incluso en repositorios de la distribución, pues decirle que sí, lo está, pero las actualizaciones no son tan rápidas como el paquete oficial. Por lo tanto, si hacen cambios en un servicio de vídeos y se tardan unos días en actualizar el paquete, probablemente no se pueda realizar la descarga. Si se usa el paquete de pip, sólo habría que actualizarlo y volverlo a intentar.

Por lo tanto, insisto en usar el paquete más directo, y para instalarlo, siempre y cuando se tenga Python instalado en el sistema operativo (esto vale para cualquiera), hay que abrir un terminal y escribir:

pip install yt-dlp

Aunque esté disponible para cualquier plataforma que pueda usar Python, incluidos iOS e iPadOS (vía a-Shell), puede que no se pueda usar pip en todos los escenarios, sobre todo en Windows si no se ha añadido a su PATH. En ese caso, puede ser necesario lanzar pip como módulo, y la sintaxis sería python -m pip install yt-dlp. Hará una descarga rápida y ya se podrá usar desde el terminal.

Y su uso puede ser sencillo o complicarlo un poco. Aquí vamos a explicar un par de maneras de usarlo, porque tratar todo lo que hace no es sencillo ni leyendo la documentación oficial. Para descargar un vídeo con su mejor calidad, abriremos un terminal y escribiremos el nombre del programa seguido del enlace entre comillas, como por ejemplo:

yt-dlp "https://www.youtube.com/xxxxxxxxx"

Con esto, el programa descargará el audio y el vídeo por separado, y los unirá tirando de FFmpeg. Si no tenemos FFmpeg instalado, la unión de vídeos de plataformas como YouTube se tendrá que hacer a mano.

La otra manera de descargar los vídeos es eligiendo la calidad. Hay maneras de indicarle el mejor vídeo, el mejor audio, todo junto, por separado… pero yo prefiero hacerlo de la siguiente manera. En vez de poner yt-dlp seguido del enlace entre comillas, ponemos -F delante del enlace. -F le pide que nos muestre en consola los diferentes formatos que hay disponibles, y veremos algo como lo siguiente:

Formatos de vídeo en youtube

Como podéis ver, se muestra bastante información. En la segunda columna vemos el formato del vídeo, en la tercera la resolución o si es sólo audio, y en la quinta el tamaño. Para este ejemplo, vamos a descargar el vídeo a la máxima resolución en la que está disponible y en formato mp4. Para ello, tenemos que fijarnos en el número de la primera columna, y usarlo con la opción -f, en este caso en minúsculas:

yt-dlp -f 137 "https://www.youtube.com/xxxxxxxxx"

La descarga será exactamente igual que poniendo sólo el enlace, con la diferencia de que habremos elegido nosotros qué es lo que descarga. Y un detalle: esto puede funcionar también en páginas que no sean de vídeos, pero tengan el vídeo enlazado.

Quien quiera saber más sobre yt-dlp, su página oficial es esta.

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

Créate tus propias web apps con Python y Qt con estos sencillos pasos

Creando web apps con Python y Qt

Las web apps llegaron para quedarse, y cada vez se usan más. Hace tiempo, servicios como Twitter eran muy diferentes, siendo ahora una especie de aplicaciones móviles que se adaptan a la pantalla del dispositivo con el que entremos. Pero lo malo de estas aplicaciones es que se ejecutan en el navegador, y hoy en día hay pocos navegadores que no demanden bastantes recursos. Haberlos haylos, pero ¿y si hubiera algo aún más ligero, incluso más que lo que ofrece Linux Mint?

Claro, podemos usar un navegador basado en Chromium y crear un acceso directo o instalar la aplicación y lo que tendremos será como una pestaña suelta que consumirá menos recursos que el navegador completo. Es cierto, esta es una posibilidad, pero, dependiendo de la web que tenga que cargar, el peso puede variar, y, en mi opinión, no es para nada bajo. Qt ofrece un widget que es para mostrar contenido web, y el secreto aquí es crear una aplicación sencilla que cargue esa web por medio de Python. Es posible con otros lenguajes, pero Python es el más asequible.

Cómo crear una web app con Python

Para poder seguir adelante, hay que tener instalados varios paquetes. Claro está, si queremos ejecutar la web app con Python, necesitaremos Python; la versión de nuestra distribución debe valer. También es necesario tener instalado el paquete webengine de PyQt5 (el de PyQt6 también vale, pero el código variará), y su nombre exacto dependerá de la distro en la que estemos. En Arch Linux y derivados se encuentra como python-pyqt5-webengine, y en Ubuntu y derivados suele ser python3-pyqt5.qtwebengine. Una vez con esos paquetes instalados, ya lo tendríamos todo para crearnos nuestras propias web apps. Los pasos a seguir serían estos:

  1. Creamos un archivo de texto nuevo. El nombre dará igual, pero merece la pena que sea descriptivo para que sepamos qué es. La extensión debe ser .py si vamos a usar Python.
  2. Pegamos este código, a explicar más adelante:
#!/usr/bin/env python3
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import QtWebEngineWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setGeometry(100, 100, 1200, 760)
        MainWindow.setMinimumSize(400, 500)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.webEngineView = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
        self.verticalLayout.addWidget(self.webEngineView)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
    
        self.webEngineView.setUrl(QtCore.QUrl("https://pluto.tv"))
        self.webEngineView.setObjectName("webEngineView")
        MainWindow.setCentralWidget(self.centralwidget)
        


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Siendo Python, hay que tener cuidado con el sangrado, es decir, con los espacios que hay desde el borde izquierdo hasta la primera letra. Si no está bien y a la misma altura todo lo que corresponde a la misma clase o función, Python detecta que pertenece a otra parte y no funciona. Pero vamos paso a paso.

  1. Supongamos que lo que queremos es crearnos la app de Pluto TV, y que nuestro archivo se llama pluto.py. Hacemos clic secundario sobre pluto.py, vamos a las preferencias y lo marcamos como que es ejecutable. También podemos abrir un terminal y escribir:
chmod +x pluto.py
  1. Ahora deberíamos poder abrirlo con un doble clic, pero merece la pena hacerlo antes desde el terminal. Abrimos uno y escribimos python pluto.py. En algunas distribuciones puede que sea necesario cambiar «python» por «python3».
  2. Si vemos que se abre, ya tenemos nuestra web app creada. Podemos crearle un archivo .desktop para que aparezca en el menú de aplicaciones o lo que sea, pero la aplicación ya estaría creada. Los mensajes de error que aparecen en el terminal pueden ser ignorados si la app funciona.

Explicando el código

Del código anterior, la primera línea es el «shebang» indicando qué abrirá el archivo. A mí con ese me ha funcionado en cualquier distro Linux, pero puede variar en alguna. Lo que dice es que se abra con Python. Luego se crea una clase, un objeto de la ventana principal. Dentro tenemos la función que mostrará la interfaz de usuario. Los métodos .setGeometry() y .setMinimumSize() son para las dimensiones que tendrá al abrirse y cuál es el tamaño mínimo. En .setGeometry() hay que indicar también dos números (100,100); los otros sí son las dimensiones. Luego vienen las líneas que crean el widget para ver la página web y lo último (if __name__…) es lo que lanza la aplicación. La web app será la que haya entre las comillas que hay cerca del método QUrl.

Ojo: las web apps se muestran en un visor básico

Quien esté pensando en que esto es mejor que, no sé, instalarse Photopea en un navegador basado en Chromium, que se olvide. Claro está que se pueden mejorar estas web apps y que actúen como lo hacen con el navegador, pero no con los sencillos pasos que se incluyen en el titular. Esto va a servir para tener aplicaciones como YouTube, Pluto TV, Twitter… pero no se pueden descargar archivos, no guarda las contraseñas ni se pueden instalar extensiones.

Lo mejor de esto es que, justamente por ser sólo un visor básico y limitado, la aplicación web consumirá menos recursos que una de Chromium. En cuanto a Photopea, al no tener los widgets que piden dónde guardar los documentos, ni ninguna función que haga que se escriban en el disco duro, no se pueden guardar las imágenes. Yo sí he probado y sí se pueden subir arrastrando dentro de la ventana, pero no bajarla. En este caso concreto, lo que se puede hacer es compartir la edición, copiar el enlace que nos da y abrirlo en otra parte, pero el enlace abre justamente Photopea… Ya lo dije, es básico.

Pero básico no es inservible, y si puede ayudar a alguien, me alegraré.

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

elementary OS se ha pasado marzo corrigiendo bugs, no nos hablan de nuevas funciones

elementary OS, aplicación cargada del exterior

A finales de un mes/principios de otro, muchos proyectos informan sobre las novedades que han ocurrido en sus equipos durante los últimos 30 días. Clem Lefebvre, líder de Linux Mint, nos habló, por ejemplo, de retoques para mejorar la interfaz de usuario. Poco después fue Danielle Foré quien nos habló de lo ocurrido en elementary OS durante el mes de marzo, y artículos como este fueron los que a principios de año le motivaron a hacer una encuesta para saber si sus usuarios preferían artículos mensuales o publicaciones más extensas con más información.

No seguí cómo quedó esa encuesta, pero al final está publicando artículos mensuales. En el de marzo ha hablado de corrección de errores, hasta el punto de que dice que todo son «bug fixes» y que no nos esperemos muchas nuevas funciones. Sí dice que hay que estar contentos si lo que se esperaba era saber que se ha mejorado la estabilidad y se han cerrado informes de bugs.

Las últimas actualizaciones de elementary OS se centran en los parches

En inglés, a instalar aplicaciones de fuera de medios oficiales se le conoce como «sideload». En este sentido, elementary OS ha mejorado lo presente, y este marzo han hecho un par de cambios para que estemos informados y tengamos el control de lo que hacemos. Ahora, en vez de marcar las aplicaciones de este tipo como que no son de confianza, han actualizado la interfaz para preguntarnos si confiamos en ellas o no (a la derecha de la imagen de cabecera).

En el resto del artículo se detallan algunas correcciones, como las introducidas en la aplicación de correo y las cuentas en línea o el terminal. En cuanto al gestor de ventanas Gala, se han arreglado fallos que incluyen las ventanas de notificación, que ahora también se muestran en la vista multi-tarea, se han arreglado fallos con los atajos del taclado, se han introducido parches que evitan clics equivocados que activan acciones accidentalmente y se ha mejorado el rendimiento, entre otras cosas.

Para recibir todas estas actualizaciones, no hay disponible una nueva imagen ISO. Hay que abrir AppCenter y actualizar todos los paquetes.

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

Chrome 112 llega con soporte inicial para WASM y con mejoras en el soporte para CSS

Chrome 112

Ayer mismo escribí un artículo en el que confesaba que había intentado usar Firefox por defecto y me había sido imposible. En general, el motivo fue que estoy muy acostumbrado a las «golosinas» extra de Vivaldi, pero también comentaba que la compatibilidad es mejor en Chromium. En los comentarios, alguien también dijo que le iba bien, pero en contadas ocasiones se encuentra con problemas. En mi artículo, yo decía que Chromium también gestiona mejor el tema CSS, y el lanzamiento de Chrome 112 se produjo el mismo día para darme la razón.

Entre las novedades de Chrome 112 podemos leer varias relacionadas con el CSS. Por ejemplo, ahora permite crear reglas de CSS anidadas en otras hojas de estilos, en lo que se combinan selectores del exterior con las reglas interiores para mejorar la modularidad y mantenimiento de las hojas de estilo. Google dice que es algo que han adoptado ellos y que Firefox también ha dado el sí, pero Safari no y los desarrolladores web aún tienen que ir implementándolo. Para el usuario final, lo único que tenemos que saber es que Chrome va por delante de estas tormentas, y debería ser igual en los basados en Chromium.

Chrome 112 también soporta animation-composition

Siguiendo con el CSS, Chrome 112 también soporta la propiedad animation-composition, una regla que especifica la operación de composición que se usará cuando hay varios efectos de animación que afectan a la misma propiedad. El soporte para esto aún no está ni en Safari ni en Firefox, que son los otros navegadores que compiten en la distancia con Chromium.

Por otra parte, Chrome 112 ha introducido novedades como soporte para WebAssembly, también conocido como WASM. En realidad, ha añadido el soporte de manera experimental, y se recogerá cierta basura de apoyo para permitir el soporte eficiente de lenguajes administrados de alto nivel con WebAssembly. Como siempre, Google ha aprovechado la ocasión para añadir varios parches de seguridad, disponibles aquí.

Chrome 112 está disponible desde ayer día 4 de abril para todos los sistemas soportados desde su página web oficial. Los usuarios de Linux que estén en una distribución que añade el repositorio oficial tras la primera instalación ya deberían haber recibido el nuevo paquete. Para los usuarios de Arch Linux y derivados, está disponible en AUR como google-chrome, y también se podrá descargar desde Flathub en los próximos días.

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

Cómo instalar paquetes desde Pip en Ubuntu 23.04

Ubuntu es un entorno ideal para programar en Python.

Si no tienes idea de que va este artículo no necesitas leerlo ya que no es algo que necesite saber todo el mundo. Solo quienes programan en el lenguaje Python usando Ubuntu 23.04 tienen que saber cómo instalar paquetes desde Pip.

Para los que no saben de qué estoy hablando, pero tienen curiosidad, les cuento que Python es un lenguaje de programación muy potente y apto para usuarios principiantes y profesionales. Cuenta con una serie de bibliotecas (Programas para funciones específicas que pueden ser usados por otros programas) que pueden ser instalados de dos formas: el gestor de paquetes tradicional de la distribución o su propio gestor de paquetes conocido como Pip.

El tema es que los desarrolladores de Debian (La distribución en la que se basa Ubuntu) encontraron que se producían conflictos entre los paquetes instalados por uno y otro método y, a partir de ahora cuando intentas la instalación mediante Pip recibimos un mensaje que nos avisa que estamos intentando instalar un paquete de origen externo y nos sugiere dos caminos:

  1. Instalar desde repositorios oficiales.
  2. Crear un entorno virtual

Si vas a instalar desde repositorios te recomiendo instalar primero el gestor de paquetes Synaptic ya que el buscador del Centro de Software de Ubuntu es un auténtico dolor de cabeza. Lo hacer con
sudo apt install synaptic.

Cómo instalar paquetes desde Pip

Lo primero que necesitamos es instalar los siguientes paquetes: python3-full y python3-pip
EL primero nos garantiza tener todas las herramientas para trabajar con Python y el segundo instala el gestor de paquetes Pip.
Los comandos son:
sudo apt install python3-full
sudo apt install python3-pip.

Creando entornos virtuales

En Python es posible crear un espacio aislado de la instalación principal de Python en los cuales instalar dependencias y bibliotecas sin modificar el sistema principal ni los otros entornos virtuales. Esto permite por ejemplo ejecutar versiones de prueba de una futura versión de una biblioteca o comprobar cómo funciona un programa en diferentes versiones de Python.

A continuación, creamos el entorno virtual con el comando:

python3 -m venv titulo_entorno
Y lo lanzamos con:

source titulo_entorno/bin/activate
E instalamos el paquete que queríamos instalar con
pip3 install nombre_paquete
Salimos del entorno virtual con
deactivate

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