Text in librsvg starts to get better
Up to now, text support in librsvg has been fairly limited. The text chapter in the SVG spec is pretty big and it contains features that are very much outside of my experience (right-to-left languages, vertical text). But now I think I have a plan for how to improve the text features.
Bidirectional text
Bidirectional text, or "bidi" for short, happens when one has a right-to-left language like Arabic or Hebrew intermixed with things like Arabic numerals, or Latin text.
This is an interesting little example from the SVG spec:
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" viewBox="0 0 600 72"
direction="rtl" xml:lang="he">
<title direction="ltr" xml:lang="en">Right-to-left Text</title>
<desc direction="ltr" xml:lang="en">
An example for using the 'direction' and 'unicode-bidi' properties
in documents that predominantly use right-to-left languages.
</desc>
<text x="300" y="50" text-anchor="middle" font-size="36"> כתובת MAC:‏
<tspan direction="ltr" unicode-bidi="embed">00-24-AF-2A-55-FC</tspan>
</text>
</svg>
It is supposed to render like this; it says "MAC address: xxx-yyy-zzz":

However, until librsvg 2.52.2 this did not work correctly. You see, librsvg takes each
piece of text inside a <text> and creates a Span for it. If there is a <tspan>
element, it also gets a Span created. However, librsvg did not handle the case where an
inner <tspan> changes the direction property from its parent <text> element.
Another bug:
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xml:lang="fa" direction="rtl" width="200" height="100">
<g font-family="Dana-FaNum" font-size="16">
<text x="50%" y="50%"><tspan font-weight="bold">نام: </tspan><tspan>مهدی</tspan></text>
</g>
</svg>
It is supposed to render more or less like this (the line says, "Name: Mehdi"):

This was broken, too!. I did not realize that within <text>, the
spans need to be laid out exactly in the text direction, in this case rtl. I thought
that it was sufficient to let Pango deal with each group of characters within a span.
Together with that, I fixed text-anchor for right-to-left text. This is what one uses
to align a text block with respect to its start, middle, or end. It was also broken for
RTL languages before.
One remaining bug is that there should be a space to the left of the :,
but librsvg is eating it. I think it needs to implement the SVG2 white-space behavior,
which replaces the ambiguous definition of xml:space from SVG1.1.
A test that makes me exceedingly happy
This family of images from Wikimedia Commons has been broken for many years. Someone has been painstakingly making SVG2 maps of German rail by writing SVG code by hand; they use features that became available only after Madds Holland's Outreachy internship from last Summer. Also, the maps use text offsetting features that were just broken.

The little arrowheads were broken because librsvg didn't support
orient="auto-start-reverse" in markers (arrowheads get done with SVG's "marker"
feature). Madds added support for that during their Outreachy internship.
Then, most of the the multi-line text objects in there were laid out
incorrectly. Librsvg was laying out spans inside text chunks incorrectly
when they had dx/dy offsets and the text also had text-anchor different from the
default.
Previously:

Now:

One last detail which I haven't figured out is that the positioning of glyphs is a bit off. If you look at the slanted label for the LU-Rheingönheim station, the "heim" at the end looks a bit misaligned with the rest of the label. Firefox renders it correctly. Advice is appreciated!
Future plans
All those fixes will appear in librsvg 2.52.3, due in a few days.
I want to add more tests for right-to-left and bidi text; they can be affected by many properties for which there are no tests right now.
After bidi text works reasonably well, I want to add support for positioning individual
glyphs with the x/y/dx/dy properties. People from Wikimedia Commons really want this,
to be able to lay out equations and such.
Once individual glyphs can be positioned independently, maybe textPath support, which
cartographers really like for curved labels.
A handy tool
I recently discovered the Ahem font. It is part of the CSS fonts tests, and consequently part of the Web Platform Tests. Quoting from its description:
The font’s em-square is exactly square. Its ascent and descent combined is exactly the size of the em square; this means that the font’s extent is exactly the same as its line-height, meaning that it can be exactly aligned with padding, borders, margins, and so forth.
That is, you can typeset something with the Ahem font and it will appear as contiguous squares. If you render the string ABCD, it will appear as a rectangle four-ems wide by one-em tall. This is wonderful for reproducible tests!
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="600" height="300">
<rect x="0" y="0" width="100%" height="100%" fill="white"/>
<line x1="50%" y1="0" x2="50%" y2="100%" stroke-width="2" stroke="blue"/>
<line x1="0" y1="100" x2="100%" y2="100" stroke-width="2" stroke="blue"/>
<text x="50%" y="100" font-family="Ahem" font-size="20" text-anchor="end"><tspan dy="-1em">A</tspan><tspan dx="-40" dy="1em">BC</tspan></text>
</svg>
That renders like this:

Text rendering clearly means spending days trying to get three black squares to draw in the correct position.
Grade icon theme, iconos coloridos para Plasma
Hoy tengo poco tiempo y nada en el congelador de noticias, así que echo mano de un clásico los temas de iconos para tu escritorio. Hoy tengo el gusto de presentaros Grade icon theme, un tema de iconos que destaca por su colorido diseño que combinan perfectamente tanto con temas claros como oscuros.
Grade icon theme, iconos coloridos para Plasma
Para el escritorio Plasma de la Comunidad KDE hay cientos de temas de todo tipo disponibles para los usuarios: iconos, cursores, emoticonos, etc, Y como me gusta cambiar de vez en cuando, en el blog le he dedicado muchos artículos a cada uno de los packs.
De la mente y la mano digital de mayurzambare nos llega un nuevo tema de iconos que recibe el nombre de Grade icon theme, un tema que encaja a la perfección con cualquier tipo de escritorio, bien sea claro u oscuro por su colorido y desenfadado estilo.
Por cierto, no es la primera vez que este diseñador aparece en el blog, hace relativamente poco hablé de otro de sus temas, concretamente de Beauty, un precioso tema de iconos para tu Plasma que habitó en mi portátil hace unos meses.

Y como siempre digo, si os gusta el pack de iconos podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador mayurzambare lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.
Más información: KDE Store
Dona tu Raspberry Pi para colaborar con las campañas de GNU Health
El software libre es más que bits. Puede ayudar a comunidades locales a gestionar pequeños hospitales con GNU Health que mejoran la salud y el bienestar de las personas

GNU Health es un sistema cada vez más completo que sirve para gestionar distintos aspectos de un centro de salud u hospital. Gestión de enfermos, informes médicos, resultados de análisis, etc. ¡Y es software libre!
Este sistema desarrollado como software libre, puede ayudar en comunidades con pocos recursos, ya que no requiere licencias y para su ejecución no se requieren potentes equipos, si no que pueden funcionar perfectamente en una Raspberry Pi con sistemas libres como openSUSE Leap.
No requiere de grandes infraestructuras, ni conlleva grandes gastos de consumo energético, etc. Por eso son una gran solución en zonas con menos recursos o en zonas que han sufrido una emergencia como una catástrofe.
Miles de pacientes en la zona costera de Kribi, Camerún, están preparados para obtener una mejor prestación de atención médica a medida que un hospital de la ciudad se expande con el uso de soluciones de software libre eficientes desde el punto de vista energético.
El Hospital Ebomé, que se encuentra en la costa sur de África central, cuenta con servicios de emergencia las 24 horas, quirófano, radiología, maternidad, laboratorio, farmacia y otros servicios. El hospital trata a miles de personas cada año.
A medida que la instalación se expanda, utilizará el Sistema de información hospitalaria de software libre GNU Health para administrar los registros de los pacientes, la información de laboratorio y los servicios administrativos. El sistema ejecutará openSUSE Leap 15.3 en varias computadoras Raspberry Pi 4.
“La excelente y prolongada relación entre las comunidades de openSUSE y GNU Health ha dado como resultado una infraestructura sólida que ofrece tecnología de vanguardia al mismo tiempo que ofrece un rendimiento sobresaliente y protege la privacidad de los pacientes y profesionales de la salud“, dijo el científico informático, médico y defensor del software libre y creador de GNU Health, Luis Falcón. “Desde computadoras de placa única hasta servidores de nivel empresarial y teléfonos móviles. Nuestras comunidades continuarán siendo pioneras y brindarán tecnología punta en las áreas de salud pública, administración de hospitales y laboratorios, bioinformática y tecnología de salud personal como MyGNUHealth ”.
Los pacientes pueden acceder a los registros médicos personales a través de MyGNUHealth con openSUSE en PinePhone; o ejecutando Plasma Mobile de KDE, XFCE o su entorno de escritorio favorito. El hospital, que es administrado por una organización no gubernamental española llamada Ambala, utilizará la versión 4.0 de GNU Health en los dispositivos de placa única con todos los componentes de administración del hospital y del laboratorio.
La mitad de las 40 estaciones de trabajo Pi en la instalación son donadas por GNU Solidario, que es una ONG fundada por Falcón, y openSUSE.
“La donación de Raspberry Pi y otras computadoras de placa única nos ayuda mucho a lograr nuestra misión de Salud Universal”, dijo. “Enviamos GNU Health integrado en estos dispositivos a cualquier institución de salud en todo el mundo. No tienen que preocuparse por la instalación ni por los detalles técnicos, y deben concentrarse en lo más importante, el bienestar de su población y de sus pacientes “.
La instalación de 62 camas cuenta con 65 profesionales de la salud y cubre un área de población estimada de 180.000 personas.
La colaboración con el hospital se discutirá en GNU Health Con 2021 el 10 y 11 de diciembre de 2021.
Personas interesadas en apoyar el proyecto y donar equipos como una Raspberry Pi 4 pueden enviar un correo electrónico a info@gnuhealth.org o echar un vistazo a la página de donaciones de GNU Health.
Más información en el artículo original en inglés que puedes visitar en este enlace:

Hospital to run GNU Health, openSUSE
NUREMBERG, Germany, Oct. 20, 2021 - Thousands of patients in the coastal area of Kribi, Cameroon, are set to gain enhanced health-care delivery as a hospital in the city expands with the use of energy efficient open-source solutions.
The Ebomé Hospital, which is on the southern coast of central Africa, has 24-hour emergency services, an operating room, radiology, maternity, a laboratory, a pharmacy and other services. The hospital treats thousands of people every year.
As the facility expands, it will use the Hospital Information System GNU Health to manage patient records, laboratory information and administrative services. The system will be running openSUSE Leap 15.3 on several Raspberry Pi 4 computers.
“The excellent, long time relationship among openSUSE and GNU Health communities have resulted in a solid infrastructure that delivers state of the art technology all while delivering outstanding performance and protecting the privacy of the patients and health professionals,” said computer scientist, physician and Free Software advocate Luis Falcón. “From Single Board Computers to enterprise grade servers, to mobile phones. Our communities will continue pioneering and delivering state-of-the-art technology in the areas of public health, hospital and laboratory management, bioinformatics and personal health tech like MyGNUHealth.”
Patients can access personal health records through MyGNUHealth running openSUSE on the PinePhone; or running KDE’s Plasma Mobile, XFCE or their favorite desktop environment. The hospital, which is managed by a Spanish Non-Governmental Organization called Ambala, will be using GNU Health’s 4.0 version on the single board devices with all the hospital- and laboratory-management components.
Half of the 40 Pi workstations in the facility are donated by GNU Solidario, which is an NGO founded by Falcón, and openSUSE.
“The donation of Raspberry Pi and other single board computers helps us a lot to achieve our mission of Universal Health,” he said. “We ship GNU Health embedded on these devices to any health institution around the globe. They don’t have to worry about installation or any technical details, and focus on what is most important, the well-being of their population and patients.”
The 62-bed facility has 65 health professionals and covers an estimated population area of 180,000 people.
The collaboration with the hospital will be discussed at GNU Health Con 2021 from Dec. 10 - 11.
People interested in supporting the project and donating boards like a Raspberry Pi 4 can send an email to info@gnuhealth.org or view the GNU Health donations page.
Lanzada la primera actualización de Plasma 5.23
Tal y como estaba previsto en el calendario de lanzamiento de los desarrolladores, hoy martes 19 de octubre la Comunidad KDE ha comunicado que ha sido lanzada la primera actualización de Plasma 5.23. Una noticia que aunque es esperada y previsible es la demostración palpable del alto grado de implicación de la Comunidad en la mejora continua de este gran entorno de escritorio de Software Libre.
Lanzada la primera actualización de Plasma 5.23
No existe Software creado por la humanidad que no contenga errores. Es un hecho incontestable y cuya única solución son las actualizaciones. Es por ello que en el ciclo de desarrollo del software creado por la Comunidad KDE se incluye siempre las fechas de las actualizaciones.

De esta forma, el martes 19 de octubre ha sido lanzada la primera actualización de Plasma 5.23, la cual solo trae (que no es poco) soluciones a los bugs encontrados en esta semana de vida del escritorio y mejoras en las traducciones. Es por tanto, una actualización 100% recomendable.
Más información: KDE
Las novedades básicas de Plasma 5.22
Aún tengo pendiente el resumen de las novedades pero he aquí la lista preliminar de ellas.
- Nuevo fondo para el escritorio
- Nuevo tema: Brisa — Océano azul que mejora el aspecto de Plasma y aclara su cometido.
- Nuevos efectos visuales permanentes: los elementos activos de una ventana de diálogo, por ejemplo, se «iluminan» cuando la ventana obtiene el foco, las casillas de verificación muestran marcas reales y los botones de radio se encienden como bombillas.
- Las barras de desplazamiento y los controles numéricos son más grandes, haciéndolos más accesibles y fáciles de usar en las pantallas táctiles
- Nueva opción que le permite escoger los colores de acentuación del escritorio.
- Diálogo con una cuenta atrás al cambiar la resolución de pantalla.
- Nuevas opciones para Activar, desactivar o recordar el estado del Bluetooth.
- Reescrito grandes partes del código del lanzador de aplicaciones para hacerlo más rápido y fácil de usar.
- Mejoras en la bandeja del sistema.
- Mejoras en Wayland.
Más información: KDE
El comando comm de #GNU
Demos un repaso al uso del comando comm del sitema GNU

Los comandos de GNU coreutils son las herramientas básicas de nuestros sistemas GNU con kernel Linux similares a las de sistemas Unix, para gestionar desde la línea de comandos el sistema y operaciones con archivos de texto.
Vamos a repasar las opciones y uso del comando comm que sirve para comparar dos archivos ordenados, línea por línea y nos mostrará el resultado de dicha comparación.
El comando comm, sirve para comparar dos archivos que previamente ya estuvieran ordenados, importante matiz, y si lo ejecutamos sin más mostrará tres columnas separadas por tabuladores en los que podremos encontrar:
- primera columna: el texto que únicamente aparece en el primer archivo
- segunda columna: el texto que únicamente aparece en el segundo archivo
- tercera columna: el texto común que aparece en ambos archivos
Primero vamos a ordenar el contenido de los dos archivos que vamos a comparar, para ello vamos a utilizar el comando sort y guardar el contenido en los propios archivos. Tenemos dos archivos llamados archivo1.txt y archivo2.txt
Para ordenar un archivo y que lo guarde en el mismo archivo ejecutaremos:
sort -o archivo1.txt archivo1.txt
Hacemos esto con los dos archivos y podemos ver lo que hay en los archivos mediante:
head archivo1.txt archivo2.txt
==> archivo1.txt <==
aloha mundo!
linea 2
linea 3
naranja
==> archivo2.txt <==
hola mundo!
linea 2
linea 3
linea 4
naranja
Ahora ejecutemos el comando comm:
comm archivo1.txt archivo2.txt
aloha mundo!
hola mundo!
linea 2
linea 3
linea 4
naranja
Como decía antes, sin más parámetros el comando nos muestra 3 columnas. Las líneas que solo aparecen en el primer archivo, las que aparecen solo en el segundo y las que son comunes en ambas.
Podemos eliminar alguna de esas columnas con las opciones -1 o -2 o -3 que suprime la primera, la segunda o la tercera columna respectivamente.
Mostremos únicamente las líneas comunes que aparecen en ambos archivos mediante:
comm -12 archivo1.txt archivo2.txt
linea 2
linea 3
naranja
También podremos configurar el texto que separa las columnas. Por ejemplo, vamos a separar las columnas con guiones:
comm archivo1.txt archivo2.txt --output-delimiter=-------------
aloha mundo!
-------------hola mundo!
--------------------------linea 2
--------------------------linea 3
-------------linea 4
--------------------------naranja
Tiene otro par de opciones para decirle al comando que no están ordenados los archivos o para comprobar el orden, pero no son muy útiles.
El comando en sí, no es muy potente si lo comparamos con otras opciones como diff, pero el comando comm al ser más simple, nos puede ser más útil a la hora de ejecutarlo en algún script en el que lo necesitemos.
La verdad es que la información presentada es muy espartana, lo que es genial si usamos el comando en un script, pero si lo usamos como comando, quizás se le puede añadir un pequeño encabezado de la siguiente manera:
echo "archivo 1 archivo 2 ambos" && echo "---------------------------------------------" && comm archivo1.txt archivo2.txt --output-delimiter=" "
archivo 1 archivo 2 ambos
---------------------------------------------
aloha mundo!
hola mundo!
linea 2
linea 3
linea 4
naranja
También podemos añadir la opción –total para que nos muestre un recuento del contenido de elementos de cada columna en la parte inferior.
También existe la posibilidad de comparar un archivo (no pueden ser los dos) con la entrada estandar, es decir texto introducido por teclado:
comm archivo1.txt -
Ahora vamos escribiendo cadenas de texto (en forma ordenada) para que las compare con archivo 1. Y nos dirá si estaban en el archivo, si solo aparecen en lo que hemos escrito o si están en ambos archivos. Para terminar pulsamos Ctrl+D.
Estás serían las maneras de utilizar este comando estándar de POSIX escrito para GNU por Richard M. Stallman y David MacKenzie. Quizás útil a la hora de incluirlo en algún script.

OWASP SP : Quinto Meetup Virtual de 2021

Nesta terça-feira, dia 19 de outubro, a OWASP SP proporcionará o quinto Meetup com palestra de extrema relevância como sempre, sendo uma vez que o mundo vive uma crise no contexto de segurança da informação. Todo dia nos deparamos com um novos vazamentos de dados. Sendo assim, a propagação de conhecimento, proporcionará softwares e sistemas seguros minimizando esta crise.
19h00 : Tema: Automação de monitoração serverless sobre superficie de ataque
Palestrante : Ubirajara Aguiar Jr
Nesta palestra veremos uma demonstração de como estruturar a orquestração de serviços AWS com o objetivo de manter uma monitoração ativa sobre a superfície de ataque de um ambiente corporativo.
Mini-Bio: Especialista em segurança da informação com foco em segurança ofensiva, análise de segurança em aplicações, APIs, redes e nuvem. Implementação de SDLC. 10 anos de carreira em TI com passagens por áreas de infraestrutura e governança, além de segurança da informação. Pesquisador de segurança e bug hunter.

Octavo episodio de KDE Express: Komunidad con Ignacio Serantes
Nuevo podcast producido por los miembros de la asociación sin ánimo de lucro KDE España. Bienvenidos al octavo episodio de KDE Express que sigue la serie de Komunidad, en esta ocasión con Ignacio Serantes. Escuchemos lo que nos tienen que contar.
Octavo episodio de KDE Express: Komunidad con Ignacio Serantes
Comenté hace unos meses que había nacido KDE Express, un audio con noticias y la actualidad de la Comunidad KDE y del Software Libre con un formato breve (menos de 30 minutos) que complementa los que ya genera la Comunidad de KDE España de forma casi mensual con sus ya veteranos Vídeo-Podcast que podéis encontrar en Archive.org, Youtube, Ivoox, Spotify y Apple Podcast.

Seguimos pues con sus episodios cortitos y, en esta ocasión, con una nueva charla con un veterano integrante de KDE España, llegando al número 8 de su primera temporada que, en palabras del equipo de KDE Express, se introduce de la siguiente forma:
Seguimos con Komunidad KDE, cambiando esta vez a un compañero de KDE – Cañas y Bravas y socio de KDE España, Ignacio Serantes Iglesias. Como es habitual hacemos un recorrido histórico por su experiencia con Linux en general y con algunas vivencia de KDE en particular.
Algunas de las cosas mencionadas:
PD: Feliz 25 aniversario de KDE!
A mi me sigue gustando mucho, es rápido, directo al grano y muy dinámico, con lo cual es ideal para aquellos que les guste tener su pincelada de Kdeera en su podcaster. Evidentemente, no se profundiza en temas aunque si se da una visión muy personal de los mismos.
Así que sigo dando mi más sincera enhorabuena a José Picon, Brais Arias y a David Marzal por el esfuerzo y dedicación… y aprovecho para comentar que si alguien está interesado en colaborar (bien sea para iniciarse o bien sea porque cree que puede aportar alguna cosa) no tiene más que ponerse en contacto con ellos enviando un mail a esta dirección kde_express@kde-espana.org.
Por cierto, también podéis encontrarlos en Telegram: https://t.me/KDEexpress
Actualizaciones de las imágenes de #openSUSE Leap
La distribución de GNU/Linux, openSUSE, espera tener recompilaciones regulares de su versión Leap de manera trimestral o según sea necesario

La comunidad de openSUSE no para en pensar mejoras y beneficios para la propia distribución de GNU/Linux como para mejorar la experiencia del usuario que instala este sistema operativo.
En este caso se trata de una mejora en la versión del sistema operativo de lanzamientos anuales llamada Leap.
La versión Leap de openSUSE se publica de manera (más o menos) anual, donde se incorporan mejoras y actualizaciones de software no drásticas para no provocar que unas actualizaciones de varios paquetes “rompan” el sistema.
Es decir, en openSUSE Leap, no prima el tener la última versión funcional de todos los paquetes instalados, si no los más estables. No tendrás la versión más reciente del kernel Linux, si no la más estable y mantenida y como este ejemplo todo los demás.
Pero sí que se publican parches y actualizaciones de seguridad que corrigen problemas o errores de paquetes de software y está bien instalarlas para seguir disfrutando de un sistema estable y seguro.
Con el tiempo estas actualizaciones de parches, se van acumulando desde la fecha en la que se publicó la versión disponible para descargar.
Es decir, que si descargas la imagen ISO que se publicó y la instalas, después tendrás que actualizar el sistema para que incorpore esos parches y actualizaciones menores publicados.
Como openSUSE Leap comparte binarios con la distribución empresarial SUSE Linux Enterprise, también cuando esta última se recompile por necesidades de su software, openSUSE Leap tendrá que recompilarse y se ofrecerá una nuevo ISO.
Lo que implica, más tiempo y trabajo, consumo de ancho de banda, descarga de paquetes, etc.
Así que la comunidad de openSUSE ha pensado: Si después de instalar la ISO descargada hay que descargar esos paquetes ¿Por qué no hacer que la ISO descargada ya incorpore esas actualizaciones? Y eso es lo que han llamado “las Respin” de openSUSE Leap.
A esas imágenes ISO de openSUSE Leap se les agregará un sufijo a la numeración, para entender y diferenciarlas de la ISO publicada en la fecha de lanzamiento. Así para Leap 15.3 (la versión actual en el momento de escribir este artículo) las nuevas ISO’s con las modificaciones incorporadas serán Leap 15.3-X
Estas imágenes recompiladas con las nuevas actualizaciones y parches ya incluidos, serán las que se puedan descargar desde el sitio oficial de descargas:
Cada nueva imagen ISO, antes de ser publicada será comprobada con los test de openQA para comprobar que siguen manteniendo la estabilidad que openSUSE Leap ofrece.
Ya se ha establecido el procedimiento para automatizar la tarea y de manera cíclica se ofrecerán las nuevas versiones de openSUSE Leap actualizadas.
Enlaces de interés

