Kafka destination improved with template support in syslog-ng

The C implementation of the Kafka destination in syslog-ng has been improved in version 3.30. Support for templates in topic names was added as a result of a Google Summer of Code (GSoC) project. The advantage of the new template support feature is that you no longer have to use a static topic name. For example, you can include the name of your host or the application sending the log in the topic name.

From this blog you can learn about a minimal Kafka setup, configuring syslog-ng and testing syslog-ng with Kafka.

Before you begin

Template support in the C implementation of the Kafka destination first appeared in syslog-ng version 3.30. This version is not yet available in Linux most distributions, and even where it is available, Kafka support is not enabled. You can either compile syslog-ng 3.30 or later yourself, or use 3rd party package repositories to install it. You can learn more about them at https://www.syslog-ng.com/3rd-party-binaries In most cases, Kafka support is not part of the base syslog-ng package, but available as a sub package. For example, in (open)SUSE and Fedora/RHEL packages it is available in the syslog-ng-kafka package.

Kafka might be available for your Linux distribution of choice, but for simplicity’s sake, I use the binary distribution from the Kafka website. At the time of writing, the latest available version is kafka_2.13-2.6.0.tgz and it should work equally well on any Linux host with a recent enough (that is, 1.8+) Java. If you use a local Kafka installation, you might need to modify some of the example command lines.

Downloading and starting Kafka

A proper Kafka installation is outside of the scope of my blog. Here we follow relevant parts of the Kafka Quickstart documentation. We download the archive containing Kafka, extract it, and start its components. You will need network access and four terminal windows.

First, download the latest Kafka release and extract it. The exact version might be already different:

wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
tar xvf kafka_2.13-2.6.0.tgz

At the end, you will see a new directory: kafka_2.13-2.6.0

From now on, you will need the 3 extra terminal windows, as first we start two separate daemons in the foreground to see their messages, and two more windows are required to send messages to Kafka and to receive them.

First, start zookeeper in one of the terminal windows. Change to the freshly created directory and start the application:

cd kafka_2.13-2.6.0/
bin/zookeeper-server-start.sh config/zookeeper.properties

Now you can start the Kafka server in a different terminal window:

cd kafka_2.13-2.6.0/
bin/kafka-server-start.sh config/server.properties

Both applications print lots of data on screen. Normally, the flood of debug information stops after a few seconds and the applications are ready to be used. If there is a problem, you will get back the command line. In this case, you have to browse through the debug messages and resolve the problem.

Now you can do some minimal functional testing, without syslog-ng involved yet. This way you can make sure that access to Kafka is not blocked by a firewall or other software.

Open yet another terminal window, change to the Kafka directory and start a script to collect messages from a Kafka topic. You can safely ignore the warning message, as it appears because the topic does not exist yet.

cd kafka_2.13-2.6.0/
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest
[2020-12-15 14:41:09,172] WARN [Consumer clientId=consumer-console-consumer-31493-1, groupId=console-consumer-31493] Error while fetching metadata with correlation id 2 : {mytest=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

Now you can start a fourth terminal window to send some test messages. Just enter something after the “>” sign and hit Enter. Moments later, you should see what you just entered in the third terminal window:

bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic mytest

You can exit with ^D.

Configuring syslog-ng

Now that we checked that we can send messages to Kafka and pull those messages with another application, it is time to configure syslog-ng. As a first step, we just check sending logs to Kafka and check the results.

If syslog-ng on your system is configured to include .conf files from the /etc/syslog-ng/conf.d/ directory, create a new configuration file there. Otherwise, append the configuration below to syslog-ng.conf.

destination d_kafka {
        message("$(format-json --scope rfc5424 --scope nv-pairs)"));

log {

Note that the source name for local logs might be different in your syslog-ng.conf, so check before reloading the configuration. The name “src” is used on openSUSE/SLES. As a safety measure, check your configuration with:

syslog-ng -s

While it cannot check if you spelled the source name correctly, a quick syntax check will ensure that all necessary syslog-ng modules are installed. If you see a message about JSON or Kafka, install the missing modules.

Once you reloaded syslog-ng, you should see logs arriving on your third terminal window in JSON format, similar to these:

{"SOURCE":"src","PROGRAM":"syslog-ng","PRIORITY":"notice","PID":"5841","MESSAGE":"syslog-ng starting up; version=''","HOST_FROM":"leap152","HOST":"leap152","FACILITY":"syslog","DATE":"Dec 15 15:04:58"}
{"SOURCE":"src","PROGRAM":"systemd","PRIORITY":"info","PID":"1","MESSAGE":"Stopping System Logging Service...","HOST_FROM":"leap152","HOST":"leap152","FACILITY":"daemon","DATE":"Dec 15 15:04:57"}

Using a template in the topic name

To use a template in the topic name, the syslog-ng configuration needs two modifications. First of all, you need to modify the topic(). But you also need to provide an additional parameter: fallback-topic(). Note that topic names can only contain numbers and letters from the English alphabet. Special characters or letters with accent marks are rejected. This is why you need a fallback-topic: if a topic name cannot be used, the related message is saved to the topic named in the fallback-topic(). You can find the modified configuration below:

destination d_kafka {
        message("$(format-json --scope rfc5424 --scope nv-pairs)"));

log {

Using this configuration, the name of the application sending the log is also included in the topic name. Once you reload syslog-ng, you will receive a lot less logs on the “mytest” topic. But, for example, postfix logs will still arrive there, as they include a slash in the application name. Alternatively, you can send a log with accent marks yourself. Being Hungarian is an advantage here, but German also has its own share of accent marked characters. For example, you can use “logger” to send logs and the “-t” option can be used to set the application name:

logger -t öt_szép_szűzleány_őrült_írót_nyúz bla

You will see the related message in the “mytest” topic:

{"SOURCE":"src","PROGRAM":"öt_szép_szűzleány_őrült_írót_nyúz","PRIORITY":"notice","PID":"6177","MESSAGE":"bla","HOST_FROM":"leap152","HOST":"leap152","FACILITY":"user","DATE":"Dec 15 16:21:01"}

By now, you should have logs from a couple of applications. Stop the application pulling logs from Kafka on the third terminal window, and list the available topics. You should see something similar:

bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

When you start the collector script again with mytest_systemd as a topic, you will most likely not see any input for several minutes. The reason is that by default, the script is only collecting any new messages. Check the built-in help how you can check earlier messages.

What is next?

This blog is enough to get you started and learn the basic concepts of Kafka and the syslog-ng Kafka destination. On the other hand, it is far from anything production-ready. For that, you need a proper Kafka installation and most likely the syslog-ng configuration also needs additional settings.

If you have questions or comments related to syslog-ng, do not hesitate to contact us. You can reach us by email or even chat with us. For a list of possibilities, check our GitHub page under the “Community” section at https://github.com/syslog-ng/syslog-ng. On Twitter, I am available as @Pczanik.

Jan 12th, 2021

Audio Intel Tiger Lake-LP Smart Sound não funciona!

Se o seu sistema operacional openSUSE Linux esta com audio sem funcionar, isto geralmente ocorre em gerações de processadores recentes Gen9 ou superior. Basta instalar o pacote sof-firmware e PRONTO!

0000:00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 20)

# zypper in sof-firmware
# modprobe snd_sof_pci

Restauração de vídeos e fotos antigas com IA.

Em 31 de dezembro de 2020, disponibilizei um post onde foi demonstrado o poder da tecnologia GANs para geração de imagens. Estes modelos generativos baseado em deep learning tem ganho cada vez mais notoriedade. A família Rede Adversárias Generativa e Autoencoders Variacionais merecem todo destaque na vertical de visão computacional.

Resumidamente VAEs (Autoencoders Variocionais) é um autoencoder que possui sua distribuição regularizada durante o treinamento, com o objetivo de possui boas propriedades. Assim permitindo gerar novos dados. Então podemos entender que o termo “variacional” é o resultado da técnica da regularização e o método de inferência variacional. Ou seja este método de inferência variacional é utilizado para aproximar distribuições. Então estas técnicas proporcionam os resultados a seguir.

Fonte: http://raywzy.com/Old_Photo/

Jan 11th, 2021

Actualización de las aplicaciones de KDE de enero de 2021

Me complace anunciar la actualización de las aplicaciones de KDE de enero de 2021, una actualización que nos recuerda la aparición de la nueva aplicación Neochat ya conocida y el anuncio de más aplicaciones que llegan al ecosistema KDE.

Actualización de las aplicaciones de KDE de enero de 2021

Es complicado llevar al unísono todo el ecosistema que representa el proyecto KDE. No obstante creo que la Comunidad lo lleva bastante bien al dividir su trabajo en tres ramas diferenciadas: entorno de desarrollo KDE Frameworks, escritorio Plasma y aplicaciones KDE.

Actualización de las aplicaciones de KDE de enero de 2021
El ritmo de lanzamiento del Proyecto KDE se merece una agenda para él solo.

Esta estructura de trabajo parece funcionar bastante bien desde hace mucho tiempo (concretamente desde el lanzamiento de Plasma 5) siendo la última rama de ellas, el de las aplicaciones KDE, la que más problemas puede dar ya que es complicado que todas los programas sigan el mismo ritmo de desarrollo. No obstante hay que destacar que la mayor parte de ellas siguen el paso que se espera de ellas.

De esta forma, mes a mes los desarrolladores lanzan una gran actualización de sus aplicaciones, os animo a seguir la de noviembre o meses anteriores para poder ver esta evolución constante.

Actualización de las aplicaciones de KDE de diciembre de 2020
Decenas de aplicaciones pueblan el ecosistema del Proyecto KDE.

Así que entre las actualizaciones destacadas de KDE de este enero 2021 nos encontramos con el lanzamiento de NeoChat, un cliente de Matrix cuya versión 1.0 fue lanzada el pasado 23 de diciembre y que ofrece la posibilidad de tener mensajería realmente libre y privada.

Por otra parte nuevas aplicaciones que llegan al ecosistema KDE:

  • MyGnuHealth, un componente de GNU Health relacionado con la informació de salud de las personas, la privacidad y la libertad. Con MyGNUHealth será capaz de rastrear tu ritmo cardíaco, presión arterial y otros signos vitales, factores nutricionales y de estilo de vida que te han ayudado a mantenerte en forma.
  • KGeoTag un programa de geoetiquetado de fotos de código abierto.
  • Kongress, una aplicación que proporciona información práctica sobre las conferencias como el horario y los lugares de las charlas en el lugar.

En próximas entradas entraremos más a fondo con estas novedades.

Más información: KDE

¡Me entrevista un androide!

En concreto es C3PO el androide que me entrevista para su blog

Hace unos días el compañero de la red Mastodon, C3PO, me proponía entrevistarme para su blog. Un blog dedicado a tecnología y en el que ha empezado una serie de entrevistas a diversas gentes con las que coincide en Mastodon.

Acepté a contestar a sus preguntas para que las publicase en su blog. Y le he pedido permiso para replicarla por aquí. Espero que os guste. Y os recomiendo echar una lectura a otras entrevistas que está realizando.

Y destaco un par de esas entrevistas por lo más cercano de la persona, al amigo Fanta, y una muy interesante entrevista al amigo Notxor de la que he disfrutado, entre muchas otras, también interesantes.

Echo en falta una a él mismo, para saber más de sus inquietudes, de cómo se metió en este mundo y de lo que nos quiera contar. ¡Quizás se lo tengo que proponer!


Hoy la entrevista toca con Victorhck, que tiene un Blog bastante conocido y nombrado por diferentes fuentes de internet y donde suele tocar mucho el tema de Opensuse y otros temas variados. Lo conozco desde hace ya un tiempo en Mastodon y tenía ganas de entrevistarlo. No es la primera vez que lo entrevistan por Internet.

1.– Hola Victorhck, aunque sé que Victor no es tu nombre real. Cuéntanos algo sobre ti para que se te conozca un poco: trabajo, conocimientos, país o ciudad, etc. ¿Por qué elegiste ese apodo para internet?

Hola C3PO, que también sé que no es tu nombre real. Soy de España, de una ciudad de la meseta castellana. Conocimientos los justos, pero siempre con ganas de más. Trabajo en mantenimiento industrial.

2.– Sé que tu Blog ha tenido bastante reconocimiento en muchos lugares, ¿cuánto hace que lo empezaste y por qué?, ¿te preocupa la privacidad y seguridad informática?. Veo que te enfocas mucho en openSUSE y Vim, cuéntanos por qué.

¿Bastante reconocimiento en muchos lugares? Vaya! y yo sin enterarme. Es simplemente un blog más de los pocos que van quedando sobre GNU/Linux escritos en español y con dedicación casi artesanal. El blog cumplirá el próximo 25 de abril 10 años en la red. El motivo es común a otros que he conocido: querer devolver a la comunidad de software libre algo en la medida de mis posibilidades. No soy desarrollador, así que quería dar difusión y a la vez que sirviera de ayuda. Con el tiempo los motivos van cambiando, pero se mantiene la esencia de querer difundir, dar a conocer y ayudar en temas relacionados con el software libre y GNU/Linux. openSUSE fue el principal motivo de abrir el blog, difundir sobre esta distribución. Y sobre Vim, es un interés reciente. Decidí dar una oportunidad a este editor de texto y lo que voy aprendiendo lo comparto. De neófito a neófito.

3.– Actualmente, ¿qué sistema operativo usas en tu ordenador y en tu móvil, y por qué?, ¿cuales has usado anteriormente?

En mi portátil y mi equipo de escritorio utilizo openSUSE. Tumbleweed en el portátil y Leap en el de escritorio. Solo he utilizado esta distro desde que empecé hace 11 años a utilizar GNU/Linux. Digamos que soy fiel… En el móvil uso Android a mi pesar, pero no tengo tiempo ni conocimientos para embarcarme en instalar ROMS en dispositivos, etc. Aunque me gustaría mucho disponer de un dispositivo libre funcional bajo GNU/Linux. Me siento atado con Android y no es una sensación que me guste…

4.– ¿Qué opinas de los que intentan demonizar el uso de Tor Browser u otras redes privadas y cómo sueles usarlo tu?, ¿usas también el sistema Tails desde un pendrive usb o cualquier otro?

Utilizo Tor para visitar algunos enlaces dudosos que llegan por correo o similar. No hago un uso intensivo de Tor. Se que no es lo mismo, pero prefiero mi Firefox con complementos y configuraciones. Para mí es más funcional. Tails lo he probado, pero no lo utilizo. Reconozco que son dos grandes herramientas que en muchos casos son indispensables y necesarias.

5.– ¿Crees que hoy en día las personas están abiertas a aumentar su privacidad o que sin embargo ya se han rendido a cambio de disponer de los últimos juguetes tecnológicos?.

Creo que hay una preocupación creciente en cuanto a temas de privacidad y también veo que muchas empresas están haciendo su agosto, dando gato por liebre. Pero aunque haya esa preocupación creciente, creo que después se traduce en muy poco interés por realmente hacer algo al respecto. Muchas personas se rinden, ya sea por la presión de grupo (todo el mundo lo hace o lo tiene) o por desconocimiento ya sea de las alternativas o de la forma de aplicarlas.

6.– ¿Ves posible evitar el rastreo por parte de las diferentes agencias de seguridad o tu enfoque sobre la seguridad y la privacidad va más orientado contra empresas privadas, de publicidad, spammers y otros?

Evitar ese rastreo es muy difícil. Sus herramientas, sus métodos y sus alianzas con las empresas que dominan internet se escapa a nuestra imaginación. Y tampoco somos conscientes de la manera en que alguien puede “traficar” con nuestros datos. Pensamos ¿a quién le puede interesar? Se nos escapa que hay detrás un interés creciente y un negocio con esos datos.

7.– ¿Usas actualmente redes libres y/o propietarias?, ¿algún consejo a los que nos leen sobre qué redes libres podrían usar?. ¿Crees que debemos dar libertad para que cada cual use lo que desee o que hay que “evangelizar” más sobre privacidad?

Solo utilizo redes libres. Me puedes encontrar en Mastodon, PixelFed y Diaspora. Son las tres grandes redes en las que comparto material. Debes querer encontrar algo distinto a lo que encuentras en Tuiter o Feisbuk. Si vienes buscando lo mismo, simplemente sigue quedándote en tu reducto. Una vez en la red, ya es cuestión de encontrar lo que buscas o dejarte sorprender por cosas nuevas. No busco miles de seguidores, no quiero ser “influencer”, no quiero que mis publicaciones se vuelvan virales. No quiero ser una estrella de la red de moda. Soy un usuario que las utiliza, sin más. No soy quien para “evangelizar” sobre nada. Simplemente doy a conocer las alternativas que yo uso, si quieres probarlas y te sirven, adelante. Si no, sigue buscando o quédate con lo que quieres.

8.– ¿Sueles usar alguna VPN, solo Tor, o ambas según para qué razón?, ¿alguna otra red?

Tengo cuenta en ProtonVPN, la versión básica gratuita. Y la verdad no la utilizo mucho. A veces me daba problemas. Siempre pienso que es mi proveedor de internet que pone trabas, pero no sé si son imaginaciones mías… Así que no la utilizo casi nada.

9.– ¿Crees importante la donación a proyectos de seguridad, privacidad y software libre?, ¿recibes tu mismo donaciones?

Pienso que es básico. Se necesita mantener servicios soberanos que ofrezcan alternativas a servicios gratuitos que ofrecen las grandes tecnológicas. Esos servicios alternativos suelen mantenerse con donaciones. Así que siempre está bien participar y donar a servicios o software que nos son básicos y que fomentan la no intrusión en la intimidad de la persona que los utiliza y que están basados en software libre. Así también a organizaciones que luchen por la libertad del software y de las personas que utilizan ese software. Hace un tiempo abrí una cuentra en LiberaPay, para recibir donaciones para mantenimiento del hosting y dominio del blog. Hasta la fecha han sido 2 personas las que han donado (muuuchas gracias) y que sepan que su dinero ha ido a parar a la Free Software Foundation ya que doné este 2020 pasado en el que cumplían 35 años desde que Richard Stallman la fundara.

10.– ¿Eres seguidor entonces de la filosofía del software libre o te conformas con el opensource o código abierto?

Siempre trato de decir software libre y prefiero ese término con la carga filosófica que hay detrás. Si es software libre, prefiero decirlo con esas palabras.

11.– ¿Qué medidas tomas al navegar por internet?. ¿Te proteges contra scripts como javascript y otros, contra la publicidad, el rastreo y el fingerprinting o evitar en lo posible tu huella digital?. ¿Qué navegadores usas en tu ordenador?, ¿usas extensiones en los mismos?

Utilizo Firefox con complementos: uBlockOrigin, HTTPS everywhere, Privacy Badger, Descentral Eyes, Canvas Fingerprint defender. Y otros complementos no específicos relacionados con la privacidad. También alguna modificación en el about:config de Firefox. Tengo sincronizados mis navegadores Firefox, así que en todos se sincronizan los complementos utilizados.

12.– ¿Qué opinas de las GAFAM (Google, Apple, Facebook, Amazon y Microsoft)?, ¿te preocupa?

Me preocupa que entre 5 empresas se maneje todo el cotarro de internet. Me preocupa que todo tenga que pasar casi obligatoriamente por sus manos. Me preocupa que no haya manera de plantarles cara o que hacerlo sea tan complicado. Me gusta que haya alternativas y me gusta más cuando esas alternativas son de software libre.

13.– ¿Tomas alguna medida de protección en cuanto a las DNS que usas en internet?, ¿alguna recomendación?

Reconozco que no se mucho sobre el tema. Utilizo https sobre DNS, y cambié las DNS de mi proveedor de internet. Más allá de eso no puedo dar mucha más información técnica. Me gusta leer de las personas que saben y tratar de aprender de esas personas.

14.– ¿Crees que el email ha cumplido ya su función y que hoy en día es más necesario algo sencillo y seguro para todos como apps de mensajería, o lo usas de alguna forma?.

Yo utilizo bastante el correo electrónico. Me parece una gran herramienta. No soy muy amigo del tener que estar siempre disponible o preparado. No requiero de esa inmediatez en mis comunicaciones o no siempre. Me parece que el correo electrónico cumple muy bien ese papel de espacio en el que compartir y una herramienta válida. Sigue habiendo muchos sitios en los que para registrarte o abrir una cuenta te piden un correo electrónico. Es una herramienta distribuida, en el que participan muchos servidores. Otras herramientas deberían basarse más en ese modelo. Delta Chat es una herramienta interesante, que aunque no utilizo basa la mensajería móvil en servicios de correo.

15.– ¿Qué servicios online o propios usas?, ¿cómo proteges tu información?

Hace tiempo que tengo mi NextCloud en una Rapberry Pi. La uso sobre todo como lector RSS, pero NextCloud es sin duda una grandísima herramienta con un montón de potencial. Una solución de software libre que planta cara a servicios privativos.

16.– ¿Qué programa usas para realizar llamadas y videoconferencias desde tu ordenador, si es que lo haces así?

No hago mucho de eso, pero cuando lo he tenido que hacer utilizaba los servicios de Jitsi Meet.

17.– ¿Estás metido en el mundo de las criptomonedas?. Si es así, ¿cual sueles usar o tradear?

No hago nada de eso.

18.– Cuéntanos un poco sobre algunas medidas de seguridad que uses y con qué programas: ¿2FA, gestor de contraseñas, configuración especial de tu router?, etc…

Mi nivel de “geek” no llega tan alto…

19.– ¿Conoces algún lenguaje de programación?. Si es así cuentanos sobre ello y si has hecho algún programa propio.

No paso de novato a la hora de hacer alguna cosilla en Bash. Y lo que he hecho, creo que no se pueden llamar ni programas! 🙂

20.– Gracias por ofrecerte para esta entrevista Victorhck. ¿Quieres añadir algo más?

Gracias por este espacio y no sé si estarán a la altura de las expectativas mis respuestas.

Réunion inopinée, pause pipi, pause-café, alarme incendie, inondation, attaque etc. verrouillez votre PC en un clic.

Les évènements du Capitole, Washington, D.C.  le 6 janvier dernier m’ont suggéré de partager quelques notions très simples de sécurisation de votre session informatique en cas de panique. Windows Si vous avez devant vous un antagoniste, l’effet de presser sur CTRL + ALT + SUP ne passera pas inaperçu, ni anodin à ce dernier. Car […]

Jan 10th, 2021

¿Por qué debemos enseñar Software Libre en las escuelas?

Este artículo en realidad no lo he escrito yo, es un hilo de Twitter de la Oficina de Software Libre de la Universidad de Granada (OSL – UGR), que a su vez está basado en un artículo de PicaHack. En aras de dar más visibilidad he decidido recopilar el hilo, titularlo ¿Por qué debemos enseñar Software Libre en las escuelas? y compartirlo con todos vosotros. Creo que es positivo dar visibilidad a este tipo de publicaciones que, por cierto, no es la primera vez que lo hago.

¿Por qué debemos enseñar Software Libre en las escuelas?

Esto es lo que decimos una y otra vez allí donde nos escuchan. En docencia, siempre siempre usa #SoftwareLibre ¿Porqué? Enumeremos las razones:

  • Porque así no condicionas a tus estudiantes a usar siempre lo mismo.
  • Porque así no fomentas el pirateo que tus estudiantes van a hacer para no pagar licencias…
  • Porque así no obligas a usar una solución concreta y ofreces libertad de elección a tus estudiantes.
  • Porque es mucho más seguro ya que el #SoftwareLibre es público y se puede ver qué hace exactamente sin recelos.
  • Porque es lo que dice la Ley española.
    • Artículo 4.1 de la Ley 11/2007, de 22 de junio, de acceso electrónico de los ciudadanos a los Servicios Públicos.
    • Y Artículo 11.1 del Real Decreto 4/2010, de 8 de enero, por el que se regula el Esquema Nacional de Interoperabilidad.
  • Y por último porque es la única opción que garantiza a igualdad de oportunidades de todo el estudiantado, ya que todo el mundo podrá acceder a él sin que de ello depende el nivel económico de cada estudiante.

¿Por qué debemos enseñar Software Libre en las escuelas?

Estoy seguro que existen muchas más razones y que las podéis añadir a los comentarios como que así luchamos con la obsolescencia programada ya que el Software Libre aprovecha mejor los recursos que otro tipo de Software.

Podedlas y ampliamos el artículo ¿os parece?

SOGo calendar synchronization breaks due to emoji in the event title

SOGo calendar synchronization breaks due to emoji in the event title

An emoji can break a calendar. 😳

I am using the SOGo Groupware. I noticed that certain emojis in the event title would prevent calendar apps from synchronizing using the CalDAV protocol. I checked the logs but could not find much. I had my doubts about what could be causing it. Then, this bug report confirmed that I should investigate on the UTF-8 encoding support.

I checked the database character set.

MariaDB [sogo]> select @@character_set_database;
| @@character_set_database |
| utf8                     |
1 row in set (0.001 sec)

The database name is sogo and we are using MariaDB.

I found the character set to be utf8, to my surprise. I had to dig a little further to understand what was wrong with it.

It turned out that the MariaDB utf8 character set supports a maximum of three bytes per character. Therefore, emojis being four bytes long weren't being inserted into the database. Consequently, that breaks the calendar synchronization. The solution was to use the utf8mb4 character set which supports four bytes per multi-byte character.

I altered the database character set and collation.

MariaDB [sogo]> ALTER DATABASE sogo CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

I also applied it to every table in the database, e.g:

MariaDB [sogo]> ALTER TABLE sogo_store CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Afterwards, I could create events using an emoji in the title. The event would synchronize across my calendar apps but the emoji would not show. It would appear as four questions marks (????) instead.

SOGo calendar synchronization breaks due to emoji in the event title
SOGo calendar emoji issue

A little bit of further digging and I found that SOGo needs to be made aware of the full unicode support. It should be specified in the /etc/sogo/sogo.conf configuration file.

MySQL4Encoding = "utf8mb4";

Restart the SOGo service. Emojis should be then accepted in the event titles.

SOGo calendar synchronization breaks due to emoji in the event title

I can now put my recurrent coffee breaks in the calendar. ☕

Web vector created by stories - www.freepik.com

Jan 9th, 2021

Actualización de enero del 2021 de KDE Frameworks

Año nuevo y siguen las entradas recurrentes de las actualizaciones mensuales de rigor que demuestra que los desarrolladores de KDE no dejan de trabajar ni en fiestas navideñas. Así que se congratulan en anunciar la actualización de enero del 2021 de KDE Frameworks.  Con esta se llega a la versión 5.78, un suma y sigue de compromiso y constancia que no parece que tenga un final cercano.

Actualización de enero del 2021 de KDE Frameworks

Actualización de enero del 2021 de KDE Frameworks

A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.

La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.

El pasado sábado 9 de enero de 2020 ha sido lanzado KDE Frameworks 5.78, la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.

Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.

Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.

Más información: KDE

¿Qué es KDE Frameworks?

Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones especí­ficas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Actualización de enero del 2021 de KDE Frameworks

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,

Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.

#openSUSE Tumbleweed revisión de la semana 1 de 2021

Tumbleweed es una distribución “Rolling Release” de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.


openSUSE Tumbleweed es la versión “rolling release” o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios estas semanas.

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este enlace:

Pues ya hemos estrenado el año 2021 y las celebraciones navideñas llegan a su fin. Aún así en esta primera semana se han publicado 6 snapshots en Tumbleweed (0101, 0102, 0103, 0104, 0105 y 0106).

Estos son los cambios más notables que han llegado a los repositorios:

Y las actualizaciones de paquetes de software que pronto podremos disfrutar serán:

  • Plasma 5.20.5
  • KDE Applications 20.12.1
  • Linux kernel 5.10.5
  • Xfce 4.16.0
  • icu 68.1
  • RPM 4.16
  • Autoconf 2.70
  • Rpmlint 2.0
  • openssl 3

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés