How to import a gpg key on zypper (openSUSE)
For some odd reason, I couldn’t find quickly (2 mins in the manpage and some others on DuckDuckGo) a way to import a GPG key.

Just because one of the repos gives this ugly message:
Repository vscode does not define additional 'gpgkey=' URLs.
Warning: File 'repomd.xml' from repository 'vscode' is signed with an unknown key 'EB3E94ADBE1229CF'.
Note: Signing data enables the recipient to verify that no modifications occurred after the data
were signed. Accepting data with no, wrong or unknown signature can lead to a corrupted system
and in extreme cases even to a system compromise.
Note: File 'repomd.xml' is the repositories master index file. It ensures the integrity of the
whole repo.
Warning: We can't verify that no one meddled with this file, so it might not be trustworthy
anymore! You should not continue unless you know it's safe.
I know you can use zypper ar --gpg-auto-import-keys, but I didn’t do it when I added it (and I’m too lazy to remove
the repo and add it again, just to see if it works)
rpm --import https://packages.microsoft.com/keys/microsoft.asc
zypper ref
Las opciones de configuración del editor #Vim
Veamos cómo saber todas las opciones que tenemos disponibles a la hora de configurar el editor Vim a nuestro gusto o necesidades

Cuanto más utilizamos el editor Vim, más cosas vamos aprendiendo, más cómodos nos sentimos utilizando. Pero siempre hay un lugar para aprender algo nuevo o para adaptarlo algo más a nuestras necesidades.
Este artículo se une a la lista de artículos sobre el editor Vim que voy escribiendo en mi blog y que exploran mis comienzos y aprendizaje de Vim. Puedes encontrarlos en estos enlaces:
- https://victorhckinthefreeworld.com/tag/vim/
- https://victorhck.gitlab.io/comandos_vim/articulos.html
Por el blog, o en otros sitios encontrarás opciones que añadir o modificar en nuestro archivo .vimrc de configuración. Muchas veces las copiamos, sin saber muy bien qué hacemos o cómo podríamos conocer otras opciones disponibles.
Y hace unos días encontré cómo echar un vistazo a todas las opciones disponibles. Desde luego el editor Vim tiene una gran documentación que cubre todas las partes de este editor y sus múltiples opciones.
Por eso te animo a que escribas en tu editor Vim el comando:
:options
Que nos abrirá una ventana de ayuda con un índice y dentro de cada apartado del índice todas las opciones relativas a ese apartado.
El menú nos ofrece el nombre de la opción que podemos activar. Una pequeña explicación de lo que realiza dicha opción y los valores que pueden tomar las opciones.
Las opciones pueden ser booleanas o admitir parámetros como números o cadenas de caracteres.
En caso de ser booleanas, nos ofrece en el lado derecho el valor actual y en la derecha el otro valor que puede tomar o que se puede establecer. Por ejemplo:
number show the line number for each line
(local to window)
set nu nonu
Esto nos indica que está disponible la opción number y que lo que hace es mostrarnos el número de línea para cada línea. En mi caso lo tengo activado, así que en el lado izquierdo aparece el valor cuando está activada esa opción.
Sobre esa línea, si pulsamos Enter podemos previsualizar el cambio, cambiará entre los dos valore y veremos reflejado ese cambio directamente en un buffer que tengamos abierto. Si es una opción que admite un número o una cadena, podemos también probarla pulsando Enter, o cambiar el valor numérico o de la cadena antes de pulsar Enter.
Esto establecería este valor para esta opción para esta ventana abierta. Si quiero que se quede activo ese valor, debería incluirlo en mi archivo .vimrc para que lo tomara en cuenta. Es una forma muy cómoda de ver los cambios y poder revertirlos muy facilmente.
Si posicionamos el cursor sobre la breve explicación que se ofrece y pulsamos Enter, Vim abrirá la ayuda para esa opción con información más detallada.
Yo he estado unos días echando un vistazo a las múltiples opciones existentes y es así como me he enterado de la existencia de la opción linebreak, algo que echaba de menos hace tiempo!
Linebreak lo que hace es mantener la identación o sangrado en las líneas que por ser muy largas, Vim pone en varias líneas (si tienes la opción activada de wrap para que haga eso! )
Me resultaba muy molesto, que las líneas que no entraban en una sola línea y las presentaba en 2 o más no tuvieran el mismo sangrado que el comienzo de la línea.
Así que echando un vistazo a esas opciones disponibles en Vim es como me enteré y ya lo he metido en mi .vimrc.
Seguro que hay cosas que descubres y que te resultarán útiles y que aprenderás. Si es así compártelo en los comentarios, como complemento a este artículo y para compartir con otras personas que lo lean.

Durante o isolamento, programe em python no Minecraft com seu filho.
Disponibilizo neste artigo, como utilizar o poder da linguagem Python famoso no jogo Minecraft. Assim tornando possível interagir em tempo real com o jogo, criar mundos realistas e até criar modalidades dentro deste universo utilizando o desenvolvimento. Excelente recurso para passar o tempo sozinho ou com seus filhos durante esta fase de isolamento social devido a pandemia.

Leia o Artigo na Íntegra aqui: https://www.vivaolinux.com.br/artigo/Programe-em-Python-no-jogo-Minecraft-com-seu-filho-ou-sozinho/
06×06 KDE Free Qt Foundation, Qt y Plasma BigScreen
Me congratula anunciar un nuevo episodio de los podcast de KDE España titulado 06×06 KDE Free Qt Foundation, Qt y Plasma BigScreen. Se trata de un podcast atípico por varios motivos entre los que destacan que no se ha realizado en directo y que se ha contado con la producción de Jorge Lama.
06×06 KDE Free Qt Foundation, Qt y Plasma BigScreen
Sexto capítulo de la sexta temporada de los podcast de KDE España. Esta semana exploramos dos temas independientes. El primero fue la polémica decisión de Qt de cambiar las reglas de juego en relación con la Comunidad KDE y el papel de KDE Free Qt Foundation.
Para finalizar se trató el nuevo proyecto de KDE llamado Plasma Bigscreen y del que ya hablamos en el blog.
Este podcast es especial, ya que hemos contado con la colaboración de Jorge Lama en las tareas de productor, aunque su gran labor se vio empañada por problemas de sonido de un servidor (que espero ya tener solucionados con el nuevo micrófono que he adquirido). Con ello ganamos en calidad (que se verá poco a poco, ya lo veréis), en una gran entradilla y una excelente fin de podcast. ¡Muchas gracias Jorge!
Además, este podcast fue grabado y ha sido publicado en diferido, así que os pedimos vuestra opinión respecto si preferís podcast en directo o en diferido.
Los integrantes del podcast fueron:
- Albert Astals: desarrollador de KDE, ex miembro de la junta de KDE e.V., expresidente de KDE España, …
- Baltasar: editor de KDE Blog, secretario de KDE España y miembro de GNU/Linux València.
- Maika: miembro-amigo de KDE España
- Rubén Gómez: miembro de KDE España, de HackLab Almería y de Document Foundation.
- Jorge Lama: Diseñador sonoro/productor de podcasting: Coruña Dixital spoti.fi/34vr6Ve Bricolabs Podcast bit.ly/2KhYBnW NOlegaltech Radio goo.gl/GZ2gT3 y, ahora, productor del podcast de KDE España,
Y no os entretengo más, os dejo con el vídeo:
Como siempre, esperamos vuestros comentarios que os aseguro que son muy valiosos para los desarrolladores, aunque sean críticas constructivas (las otras nunca son buenas para nadie). Así mismo, también nos gustaría saber los temas sobre los que gustaría que hablásemos en los próximos podcast.

Android x86 no 2 em 1 Yoga
O Android 9 for x86, rodou perfeitamente no 2 em 1 da Lenovo (Linha Yoga), inclusive a caneta Stylus Pen. A seguir a linha do grub para multi-boot. As demais informações sugiro obter no link : https://www.android-x86.org/
menuentry 'Android-x86 9.0-r2' --class android {
insmod part_gpt
set root='20e72e54-0e0f-486d-b6a0-630e470c7f02'
search --file --no-floppy --set=root /android-9.0-r2/system.sfs
linux /android-9.0-r2/kernel root=/dev/ram0 androidboot.selinux=permissive quiet DATA=
initrd /android-9.0-r2/initrd.img
}

Lanzada la quinta actualización de Plasma 5.18
Tal y como estaba previsto en el calendario de lanzamiento de los desarrolladores, hoy martes 5 de mayo la Comunidad KDE ha comunicado que ha sido lanzada la quinta actualización de Plasma 5.18. 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 quinta actualización de Plasma 5.18
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.

Las novedades básicas de Plasma 5.18
Ya he hablado en varios artículos la lista de novedades, pero he aquí un breve resumen de las mismas.
- Nuevo selector de Emojis.
- Nuevo modo de edición global que sustituye el botón del cuadro de herramientas de escritorio y le permite personalizar fácilmente la disposición del escritorio.
- Mejorado el uso del lanzador de aplicaciones Kickoff y de la edición de los widgets en dispositivos táctitles.
- Mejoras en las aplicaciones que utilicen las librerías visuales GTK.
- Múltiples mejoras en las notificaciones como la información del nivel de energía en dispositivos bluetooth vinculados.
- Posibilidad de activar una opción de comentarios de usuario (deshabilitado por omisión), que permite dar información detallada del sistema y estadísticas de la frecuencia con la que utilice las funcionalidades individuales del Plasma.
- Añadido un control deslizante para la velocidad de animación global.
- Diversas mejoras en Discover como la adición de comentarios anidados para los complementos.
Introduction to OpenPGP for secure communication during COVID19 Pandemic
Introduction to OpenPGP for secure communication during COVID19 Pandemic
In this article, I will talk a bit about OpenPGP, and how to use it for secure document exchange during the COVID19-Pandemic.
What is PGP?
PGP (“Pretty Good Privacy”) is an encryption program. It has the abilitie to sign, encrypt and decrypt files. Unlike other encryption protocols, it uses asymmetric key algorithms, instead of symmetric ones. In a nutshell, this means the following: Instead of using the same password (or key) for encrypting and decrypting files, PGP uses two different ones. One Key is called the private key, This key should stay in your hands, as it says, it’s private. It is used for decrypting stuff for you, and for signing documents. People who want to encrypt a file for you or verify a signature use your public key. You can send your public key to everyone, for example you could upload it to a keyserver.
How we could use this at school
During the actual events, I am required to do home schooling. I sign every document I send of, so my teachers could verify it was me who send it. I uploaded my public key to IServ, it is loacted in the group folder gym/OpenPGP-keys.
Getting started
First install a PGP Programm. For Linux, I prefer KDE Kleopatra, although you could also use gpg’s command line interface. On Microsoft Windows, we are going to use GPG4Win.
Microsoft Windows
- Visit this site.
- Hit the download button
- Select “$0” and click “Download”
- Save the file somewhere on your hard disk.
- Execute the downloaded file.
- Select “Yes” when Windows asks whether it should execute the file.
- Hit “OK” and “Next”.
- Leave the defaults and click “Next” once again, then click “Install”.
- The needed tools will be installed.
- Hit “Next” and “Finish”.
- If Kleopatra doesn’t launch, start it from the start menu.
- Congrats! Kleopatra is now installed and configured correctly.
GNU/Linux
On Linux, installation is pretty easy. Just install Kleopatra with you package manager and you should be good to go.
Generating your very own PGP Key
Now, it’s time to generate our PGP Key pair.
- Start Kleopatra
- Select “New Keypair”
- Enter your name and your E-Mail Address (most likely IServ).
- Leave the default settings and continue.
- Enter a password for your private PGP key. It will be use for signing and decrypting your documents, so keep it secret!
Importing a PGP Key
So you received a public key. What’s next? You are required to import it in order to use it.
- Download my public key from IServ.
- Open Kleopatra
- Go to File -> import (Ctrl + I)
- Select the downloaded key file
- If it asks you to verify the key, hit “Yes”, then “Verify”.
- Unlock your secret PGP key by entering your password.
- That’s it! The key is imported.
Verifying a signature on a document
Alright, so you received a document which is signed. First of all, let’s talk about signed Open Office documents.
Signed .odx files
If you use OpenOffice or LibreOffice, verification of documents is super easy. Just open a signed document and you will see a little blue bar on top of it, saying “This document is digitally signed and the signature is valid.”. You can click on “Show Signatures”, and it will display more detailled information about the signature. A list view will appear, telling you who signed the document at what exact time.
Verifying a file with a .sig or .gpg file
Normally, you will receive a .sig (or .gpg) file and another file, for example, you recieve KW17-History-Task.pdf and KW17-History-Task.pdf.sig If you do so, follow these steps:
- Download both files (e.g. the .pdf and the .pdf.sig)
- Now use your file manager, right-click the .sig file and select “Decrypt/Verify file” on windows or Actions -> “Decrypt/Verify file” on Linux using KDE Dolphin.
- You should see something like this:
- If you see something else, the signature may be invalid.
Note: Everything that works with a .sig file also works with a .gpg file
Further reading
- Kleopatra Application Page
- The Kleopatra Handbook
- The GNU Privacy Guard
- Pretty Good Privacy on Wikipedia
Sources
- Title Picture: The KDE Community - kde.org
Yolo4! o Novo estado da Arte em Detecção de Objetos
o YOLO é uma abordagens baseadas em Deep Learning para a detecção de objetos. Seu algoritmo é baseado em regressão, sendo assim o processamento é executada uma única vez sobre a imagem. E por consequência consegue fazer a detecção de objetos em tempo real ou quase real, dependendo de hardware e resolução das imagens.
O YOLO v4 foi lançado agora em abril de 2020, não pelo criador do YOLO. Pois em fevereiro de 2020, o autor anunciou que estava deixando o segmento de visão computacional em função do possível impacto negativo que o projeto traria para a humanidade.
Em testes, o YOLOv4 obteve uma velocidade em tempo real de ∼65 FPS no Tesla V100, superando os seus concorrente mais rápidos e precisos em termos de velocidade e precisão. O YOLOv4 é duas vezes mais rápido que o EfficientDet com desempenho similar. Além disso, em comparação sua versão anterior ( o YOLOv3) os FPS aumentaram 12%.

Mais informações aqui: https://github.com/AlexeyAB/darknet
Highlights of YaST Development Sprint 98
It’s time for another report from the YaST trenches. This time, apart from this blog post, we have several other reads for you in case you are interested on YaST development or on Linux technical details in general.
Today topics include:
- Some considerations about the usage of YaST
- A sneak peek at the future of AutoYaST, including a separate full blog post
- Some kind of UI design contest for the YaST Partitioner
- Better compatibility with LVM cache
- Interesting researchs about combining disks and about Unicode support for VFAT in Linux
- An impressive speedup of the partitioning proposal for SUSE Manager
- A summary of the enhancements for YaST and related projects in Leap 15.2
And what is even better, many of those topics include a call to action for our loyal users and contributors.
Looking towards the future
Let’s start with a technical but rather significant detail. During our latest
sprint we created a new SLE-15-SP2 branch in the YaST Git repositories,
meaning that now the master branch is open again for more innovative
features.
This is an important milestone from the development point of view, since it marks the point in which the team acknowledges 15.2 to be basically done and manifests the intention to focus in the mid and long term future. All the previous blog posts have been focused on describing features and fixes that will be present in the upcoming SUSE Enterprise Linux 15 SP2 and openSUSE Leap 15.2. From now on, you will read more about changes that go into openSUSE Tumbleweed and Leap 15.3 (also SLE-15-SP3, of course).
Getting some insights about the usage of YaST
In order to take decisions for the future, we would like to know how often the YaST modules are used and which ones are the most important for the users. But that is not easy because YaST does not collect any data, the only feedback we get are bug reports and feature requests.
During this sprint we tried to gather some data by collecting the bug and feature numbers from the change logs. We have not yet analyzed that data but it seems the more features we implement the more bug reports we get. :smiley: See this gist for the details and feel free to suggest any other system we could use to analyze the relevance of the different YaST modules and components.
Modernizing AutoYaST
Something we know for sure is that AutoYaST is critical for many users of SUSE Linux Enterprise and openSUSE. And, to be honest, our venerable unattended installer is showing its age. That’s why AutoYaST has a priority place in the mid-term goals of the YaST Team. The plan is to have an improved AutoYaST for SLE 15 SP3 and openSUSE Leap 15.3, although some fixes could be backported to SP2 and 15.2 if they are important enough.
During this sprint, we started gathering some feedback from our users and colleagues at SUSE. Additionally, we did some research about the current status of AutoYaST in order to identify those areas that are in need of more love. We have put all the conclusions together as a separate blog post. Check it if you are interested in what the future will bring for AutoYaST.
Now that we have started a new development sprint, there is an ongoing discussion that might be interesting for you about AutoYaST tooling. Please, check yast-devel, opensuse-autoinstall, or the opensuse-factory mailing lists and do not hesitate to participate. We would love to hear from you.
Expert Partioner: Leap 15.3 and Beyond
If you are not an AutoYaST user, don’t worry. There is still other area in which your input will be greatly appreciated by the YaST team. The interface of the YaST Partitioner has reached a point in which is really hard to deal with it and we need to find a way to move forward.
As a first step, we have created this document that explains the problem and we hope it can be used as a base to discuss the future of the Partitioner interface.
This is a very important topic for the future of YaST. All ideas are
welcome. Feel free to join the mail
thread, to create
pull requests for the document, to discuss the topic at the #yast IRC channel
at Freenode… whatever works for you.
Recognizing LVM Cache
We also decided this was the right time to introduce some relatively big changes in libstorage-ng (the library used by YaST to manage storage devices) aimed to improve the compatibility of YaST with some advanced LVM features.
For more than a year YaST has supported to setup and use bcache to speed up rotating disks by using a SSD as a cache. But that is not the only technology that can be used for that purpose. Some users prefer to use LVM cache instead of bcache since it has been around for a longer period of time and it offers some different features.
YaST cannot be used to setup an LVM cache system and we don’t plan to make that possible. Moreover, booting from LVM cache does not work in SLE or openSUSE as of this writing. But giving the user the freedom of choice has always been important for (open)SUSE and YaST.
To help customers using LVM cache, YaST can now recognize such setup and display it properly in the Expert Partitioner and many other parts of YaST. The following warning will not be longer displayed for LVM cache volumes in openSUSE Tumbleweed.
Instead, it will be possible to use those logical volumes normally for operations like mounting, formatting, etc. The ability to modify them will still be very restricted and it will not be possible to create new LVM cache volumes.
We plan to offer a similar limited level of support for other kind of advanced LVM volumes. Stay tuned for more news on this.
VFAT filesystem and Unicode
And talking about storage technologies, we also introduced a small change in the
management of VFAT file systems for future releases of SLE and Leap (after
15.2). For some time we have wanted to stop using iocharset=utf8 in favor of
utf8 when mounting a VFAT filesystem, as this is the recommendation in the
kernel documentation.
There was also this bug
that led to avoiding iocharset=utf8 for EFI system partitions (because
iocharset=utf8implies that filenames are case-sensitive).
We took the opportunity to do some experiments and even look at the source code
of the Linux kernel to find out what’s really going on. Why is utf8 so special
and what can go wrong?
If you ever wondered what these VFAT charset related options mean and whether VFAT filenames are really case-insensitive in Linux as they are in Windows, have a look at this document we have created.
Although SLE-15-SP2 and openSUSE Leap 15.2 will still use the traditional mount
options, the new approach (utf8 for all VFAT file systems) will land in
Tumbleweed in a matter of days, as usual.
And, since we were already in research mode regarding storage technologies, why to stop there?
Mixing block sizes in multi-device devices
As a result of a recent bug in libstorage-ng which was tracked down to a RAID device block size issue the YaST team spent some time researching the topic in general.
If you’ve ever wondered what happens when you combine disks with different block sizes into a RAID, LVM, BCACHE, or BTRFS, have a look at our document.
In most cases, YaST and libstorage-ng already manage the situation well enough. But we found that in some cases we will need special handling of some situations, specially to guide our users so they don’t slip through the pitfalls. But that’s another story… for upcoming development sprints.
Faster Partitioning Proposal for SUSE Manager
Not all changes and improvements done during this sprint are targeting the mid and long term. We also had time to introduce some improvements in the upcoming SLE 15 SP2. To be precise, in the corresponding version of SUSE Manager, the SUSE’s purpose-specific distribution to manage software-defined infrastructures.
Quite some time ago, we wrote this separate blog post to introduce some special features of the partitioning Guided Setup we have developed to allow SUSE Manager (and other products) to offer the users an experience tailored to their needs.
But we knew some of those features in our partitioning proposal had serious performance problems that affected the initial proposal, that is, the one the installer creates before the user has had any chance of to influence the result or to select the disks to use.
The SUSE Manager version for SLE 15 SP2 will finally introduce two system roles that use the new proposal (both indentified by the “multiple disk” label), so it was finally time to address those performance problems.
And we really improved the situation! If you want to know more, this pull request contains many details and the result of some benchmarks. Let’s simply say here that in some worst-case scenarios we managed to reduced the time needed to calculate the initial proposal… from several hours to half a second!
Summarizing what Leap 15.2 will bring
As our usual readers have had many opportunities to attest, the life of a YaST developer goes much further than simply coding. And with every openSUSE Leap release it’s time for us to take a look back to several months of work and, with our salesman hat on, summarize all the cool additions to YaST and its related projects.
In that regard, we have been helping the openSUSE marketing team to shape the release announcement for openSUSE Leap 15.2. You will have to wait to read such document in all its glory, but meanwhile you can check what we have added to the “Snapper”, “YaST” and “AutoYaST” sections of the Leap 15.2 Features Page. It’s a wiki, so feel free to add any important point we could have missed.
To Infinity and Beyond
A lot of interesting topics open up in front of the YaST Team. So it’s time for us to go back to the daily work. Meanwhile, enjoy all the reads and don’t hesitate to get involved taking part in the converstions, improving the wiki pages or in any other way.
Have a lot of fun!
Azure Dynamic Inventory with Ansible 小記
- Starting with Ansible 2.8, Ansible provides an Azure dynamic-inventory plug-in
- 我的做法是過濾 azure-cli 關鍵字
- 從輸出的 azure-cli-201x-xx-xx-xx-xx-xx 就可以知道建立的時間
- 比對輸出的第三欄位 AppId 與 ~/.azure/credentials 內的 client_id 就可以知道是那一個了
- --id 後面接 AppId
- sakanastudy 請換成自己的 Resource Group 名稱
- 這邊可以觀察到 有抓到 resource group 內的機器 test01
- 我的測試機不是用 key, 是用 password 方式, 所以我指定 -u 使用者, 以及 --ask-pass 來輸入密碼, 如果要這樣的方式, 機器要裝 sshpass 套件, 所以下次要來更新容器版本 :)
- 這邊覺得有可能會用到的是
- plain_host_names
- Keyed_groups
- 然後預設是針對所有的 resource group, 是因為使用 include_vm_resource_groups 才去指定特定的 resource group



