Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Editar con #Vim archivos remotos

Con el editor Vim tienes la posibilidad de editar archivos en equipos remotos gracias al protocolo ssh

Adentrarse en Vim es aprender y descubrir nuevas funcionalidades interesantes. Lo que voy aprendiendo lo voy publicando en el blog en lo que he llamado: “Curso improVIMsado” y que puedes encontrar en este enlace:

El artículo de hoy se viene a sumar a esas cosas que aprendes sobre Vim y te sorprenden. Como es la posibilidad de poder editar archivos en máquinas remotas gracias al protocolo ssh. Comenzamos…

El editor Vim tiene la posibilidad de editar archivos de manera remota. Esto es gracias al complemento netrw que utiliza el protocolo ssh y gestiona archivos remotos mediante el comando scp.

Para ello deberás ejecutar el siguiente comando:

vim scp://usuario@servidor[:puerto]//ruta/al/archivo.txt

No olvides la doble // para indicar la ruta al archivo a editar en la máquina remota. El parámetro del puerto es opcional y puedes no indicarlo.

Por ejemplo, puedo editar un archivo de mi Rapberry Pi mediante el comando:

vim scp://victorhck@192.168.1.10//home/victorhck/archivo.txt

Esto abrirá el archivo especificado en mi Raspberry Pi con Vim, podré editarlo y guardarlo.

Lo que hace Vim es utilizar el comando scp para descargar el archivo pedido de la máquina indicada a nuestro equipo local (desde donde ejecutamos el comando) en la carpeta /tmp y allí lo abre para editarlo.

Cuando guardas los cambios que has realizado en el archivo, los cambios son aplicados primero en nuestra copia local de la carpeta /tmp y después subidos a nuestra máquina remota utilizando de nuevo scp. ¡Todo de una vez!

Si hay archivos que tenemos que editar de manera recurrente, podemos crearnos un alias y ahorrarnos un poco de trabajo. O quizás nos sea útil para implementar un script, etc…

Espero que te haya resultado interesante. Este y otros consejos interesantes los he sacado de la siguiente fuente:

También te recomiendo mi guía de comandos de Vim, con aquellos más utilizados, como página de consulta:

a silhouette of a person's head and shoulders, used as a default avatar

Alacritty el emulador de terminal más rápido que existe

Alacritty es un emulador de terminal disponible para GNU/Linux que dice ser el más rápido que existe… y parece que es verdad

En el mundo de GNU/Linux siempre aparece un nuevo proyecto que llama tu atención y que “amenaza” en convertirse en tu próximo proyecto preferido y que más utilizas.

Pasa con las distribuciones, pasa con la shell que utilizamos, pasa con los entorno de escritorio o gestores de ventanas y pasa con aplicaciones que utilizamos día a día.

Este es el caso de Alacritty el emulador de terminal que acabo de conocer y que amenaza con desbancar a Konsole como mi emulador de consola preferido en mi openSUSE.

Alacritty se autodenomina “el emulador de terminal más rápido que existe” ya que utiliza la GPU (el apoyo del procesador gráfico) para realizar su trabajo.

Alacritty es multiplataforma, por lo que está disponible en los repositorios de la mayoría de distribuciones, y está publicada bajo una licencia Apache 2.0

Parece ser que Alacritty nace como una frustración del desarrollador y malas experiencias a la hora de ejecutar Vim dentro de Tmux en los emuladores de teminal existentes, así que decidió tratar de solucionar ese inconveniente.

Así que me he decidido a probarla. En mi openSUSE basta con ejecutar:

zypper in alacritty

Lo que instala el paquete y unas dependencias para bash, fish y zsh. Terminado el proceso de instalación, la abro. La primera impresión (no sé si será sugestión o algo real) es que sí que parece que se desenvuelve más rapidamente que Konsole.

No tiene mucho más misterio, Alacritty es un emulador de terminal como el que venías utilizando, por lo que te dejará ejecutar comandos a tu equipo, etc.

Quizás lo primero que quieras es configurarla a tu gusto. Para hacerlo Alacritty busca un archivo de configuración en alguna de las siguientes ubicaciones:

$HOME/.config/alacritty/alacritty.yml $HOME/.alacritty.yml

En mi caso particular prefiero tenerlo todo ordenado, por lo que elijo la primera opción para ubicar el fichero de configuración.

Para empezar puedes utilizar el archivo que ofrece el proyecto en cada lanzamiento. Puedes descargar el archivo alacritty.yml y ubicarlo en la carpeta que antes he mencionado.

Ahora es cosa tuya el adaptar los colores, las fuentes, el comportamiento de la ventana, etc a tus gustos personales. Ten cuidad que el archivo de configuración es “muy sensible” a los espacios y donde debe ir cada cosa.

En mi caso, he copiado una configuración de un usuario que tiene una web que se llama DistroTube, ya que me gusta el esquema de colores que utiliza (Dracula) y lo he adaptado a mi gusto, cambiando la fuente y el tamaño de fuente.

Con esto, Alacritty  ha quedado muy parecido a lo que venía utilizando en Konsole. Echo mucho de menos el que no tenga (de momento) la posibilidad de abrir pestañas o nuevas ventanas de Alacritty dentro de la misma sesión, algo que utilizo mucho con Konsole y que con sus atajos de teclado me resulta muy útil.

Pero bueno, para solventar eso, siempre se puede utilizar Tmux

De momento el proyecto me ha gustado y tiene muchas cosas interesantes, veamos si es capaz de desbancar a Konsole, lo iré utilizando estos días para ver qué pasa…

Y tu ¿cual es tu emulador preferido? Ya conocías y utilizabas Alacritty. Si te animas a probarlo, comparte en los comentarios cual ha sido tu impresión.

a silhouette of a person's head and shoulders, used as a default avatar

Lanzada la tercera actualización de Plasma 5.18

Tal y como estaba previsto en el calendario de lanzamiento de los desarrolladores, hoy martes 10 de marzo la Comunidad KDE ha comunicado que ha sido lanzada la tercera 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 tercera 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.

Lanzada la tercera actualización de Plasma 5.18

De esta forma, el martes 10 de marzo se lanzó la tercera actualización de Plasma 5.18, 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.

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.

Más información: KDE
a silhouette of a person's head and shoulders, used as a default avatar

openSUSE ha sido elegida como "Comunidad de Talento"


 
openSUSE ha sido elegida para participar como una "Comunidad de Talento" en el Boot Camp más grande del mundo con más de 60,000 asistentes, Talent Land, que se llevará acabo en la Ciudad de Guadalajara, México. 


https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fwww.udg.mx%2Fsites%2Fdefault%2Ffiles%2Fimg_noticias%2F180402_udeg_da_bienvenida_a_la_primera_edicion_de_jalisco_talent_land_ga_12.jpg&f=1&nofb=1



 El evento se llevará acabo del 13 al 17 de abril de 2020, en la Expo Guadalajara (Av Mariano Otero 1499, Verde Valle, 44550 Guadalajara, Jal.).


La imagen puede contener: una o varias personas y personas de pie

Si estás en la ciudad de Guadalajara en esas fechas, no desaproveches la oportunidad de visitar el módulo de información de openSUSE que tendremos en el evento.

#AlwaysChanging #AlwaysFun 

La imagen puede contener: 1 persona







the avatar of Ish Sookun

DevCon 2020 | Kubernetes - Introducing through openSUSE MicroOS & Kubic

Guest post by Chittesh Sham 😉

DevCon 2020 is just about three weeks away and the hype is real.

People know me as a friendly neighborhood SysAdmin and this year I am excited to announce that I will be co-hosting a presentation alongside Ish at the Developers Conference. It has been a long time coming, and as you might have noticed Ish has been building up to this one, starting with his Kubic Presentation at DevCon 2019 , openSUSE MicroOS in Production talk at openSUSE Conference 2019 and a workshop on Managing Pods & Containers at the openSUSE Asia Summit.

Half Left - Kubernetes Logo ; Half right MicroOS logo 😊

We have been experimenting with a bunch of tools such as Podman, Buildah, Skopeo and openSUSE Kubic for a while now and we would like to share our experience.

Our presentation is scheduled on Saturday 4 April 2020, 2:30pm - 3:15pm in the Kryptone room at the Caudan Arts Centre. We will also be around for all three days at the conference, so if you want to grab a coffee and geek out on openSUSE and Kubernetes, don't hesitate to hit us up!

I would like to give express my gratitude to the Linux Foundation and Cloud Native Computing Foundation (CNCF) for their support. I was impressed by Chris Aniszczyk, especially how quickly he reacted to show his support upon noticing our talk.

It was incredible how fast the goodies from store.cncf.io (US) came to Mauritius. Kudos to FedEx for making that possible in just 5 days time! Here are some goodies that you can expect to be handed out during #DevConMU20

Yes, those are socks ;)

The Kube Gang

See you at DevCon Geeks! 🤓

a silhouette of a person's head and shoulders, used as a default avatar

SUSE y openSUSE cancelan sus conferencias en Dublin por el Coronavirus

El riesgo de infección del coronavirus (COVID-19) llega al territorio geek. SUSE y openSUSE han cancelado sus conferencias en Dublin por este motivo.

Para este próximo mes de marzo de 2020, estaba previsto que se celebrara en Dublin la SUSEcon y además también la Conferencia anual de la comunidad de openSUSE.

Pero ambas han sido canceladas, debido a las noticias recientes relacionadas con el coronavirus.

Hace unos días Melissa di Donato CEO de SUSE, explicaba en un artículo que se cancelaba la próxima SUSEcon en Dublin como medida preventiva frente a los casos de coronavirus.

También anunciaba que dicha conferencia presencial de charlas y demostraciones de SUSE y muchos otras marcas que trabajan con SUSE se van a celebrar de manera digital, supongo que mediante video conferencias, o similar…

De igual manera openSUSE también ha comunicado que la openSUSE Summit que también se iba a celebrar los días 27 y 28 de marzo de 2020, también queda cancelada.

La comunidad de openSUSE iba a celebrar la conferencia anual al abrigo del espacio utilizado por SUSE para la SUSEcon, y debido a la cancelación de esta, también han decidido suspender la cita.

Ambos encuentros son reuniones de personas de diferentes nacionalidades de todo el mundo y quizás por eso han decidido seguir las recomendaciones de la OMS y de manera preventiva no fomentar una posible expansión del virus.

Con GNU/Linux quizás estemos protegidos frente a los virus en nuestros sistemas, pero no así las personas que los usamos!!

 

 

a silhouette of a person's head and shoulders, used as a default avatar

GNU/Linux València ya es una asociación legal

Hoy me complace comentaros que finalmente los chicos y chicas de la capital del Turia han decidido dar el paso: GNU/Linux València ya es una asociación legal, y ello significa un compromiso que va mucho más allá de una moda pasajera. Así que, si os apasiona el Software Libre y estáis por la Comunidad Valenciana no dudéis en asociaros… Juntos somos legión.

GNU/Linux València ya es una asociación legal

GNU/Linux València ya es una asociación legalParece mentira como pasa el tiempo. Casi a la vez que se celebró Akademy-es 2018 de València conocí a un grupo de entusiastas valencianos que volvían a hacer florecer iniciativas libres en la capital del Turia.

Se hacían llamar GNU/Linux València, y con sus encuentros mensuales, empezaban a asomar sus proyectos de difusión del Software Libre en una ciudad que antaño era delantera.

Ahora, tras dos años de charlas, podcast, eventos, talleres y sus famosos «Almuerzos Libres» han decidido dar el paso y constituirse como Asociación.

En un extracto de su comunicado oficial podemos leer que:

«Hola, queridos amigos y amigas.

Desde la Asociación de usuarios GNU/Linux de Valencia, mas conocida por GNU/Linux valencia, queremos invitaros a formar parte de una familia cuyo propósitos son los de difundir y promover el Software Libre, tanto en su vertiente técnica, como en la ética.

Pero vamos más allá aún. Nuestra filosofía es la de hermanar a todas aquellas iniciativas que quieran promover una sociedad más justa y solidaria, desde cualquier ámbito. Muchas asociaciones que luchan por estos valores, representan diferentes movimientos sociales con muchos puntos en común entre si. Nuestra colaboración, es y será plena, con ellas. La lucha por una sociedad más justa, requiere de unión física e ideológica, y estamos seguros que unidos seremos mas fuertes.»

Su cuota de inscripción anual es de 20€ para personas físicas, y 40€ para empresas o personas jurídicas. Ambas cuotas tienen carácter anual y servirán para promocionar de forma más eficiente el Software Libre y mantener los gastos económicos que tiene constituirse como asociación (sí, aún siendo sin ánimo de lucro las asociaciones tienen gastos).

Para hacerte socio/a solo tienes que acceder a la pestaña ASOCIARSE, que puedes encontrar en el menú principal de su página web.

Más información: GNU/Linux València

a silhouette of a person's head and shoulders, used as a default avatar

Extiende las posibilidades de tu shell Fish con “oh my fish”

“Oh my fish” hace que puedas modificar el aspecto de tu shell Fish e instalar complementos que expandan las posibilidades de esta shell de manera sencilla

Desde hace un tiempo me cambié de Bash a Fish como shell en openSUSE, mi distribución de GNU/Linux.

Fish me ofrece muchas opciones predeterminadas tal cual vienen “de serie” que facilitan mucho su uso y le dan un aspecto visual que ayuda a nuevos usuarios que lleguen al manejo de la consola.

Pero siempre está bien intentar adaptarla a nuestros gustos, nuestra forma de trabajar con la consola y el uso que le damos. Además de adaptarla estéticamente a nuestro sistema o nuestros gustos.

Para eso está “Oh my fish“, un framework o sistema que posibilita de manera sencilla el poder modificar el aspecto de tu Fish instalando nuevos estilos para el prompt o el esquema de colores.

Además también te permite instalar nuevos complementos. Se pueden diferenciar tres tipos de paquetes que gestiona Oh my fish:

  • Utilidades de configuración de Fish
  • Temas para dar un nuevo aspecto a Fish (puedes ver la galería de temas)
  • Utilidades tradicionales para la Shell

Aclarar que no es necesario instalar ni utilizar Oh my Fish para simplemente utilizar la Shell Fish, pero puedes instalarlo y probar sus opciones. Veamos cómo instalar Oh my fish, para ello ejecutamos:

curl -L https://get.oh-my.fish | fish

Oh my fish viene con una pequeña utilidad llamada omf con la que podremos instalar nuevos temas, añadir nuevos paquetes, actualizarlos, eliminarlos, etc.

Su uso es muy sencillo, os enlazo a la documentación oficial donde se explica cómo empezar a utilizarlo:

Si queremos instalar un nuevo tema para nuestro Fish, podemos ejecutar el siguiente comando para ver la lista de temas disponibles:

omf theme

Y podemos instalar y aplicar el tema que más nos guste. De entre todas las opciones a mí me ha gustado el tema bobthefish porque tiene un estilo similar a Powerline y además ofrece información del estado de los repositorios en carpetas de Git.

Para instalar este tema (necesitaremos powerline-fonts ya instalado en nuestro sistema para que se vea correctamente), ejecutaremos:

omf install bobthefish

Además como soy usuario de openSUSE también he instalado el paquete de Fish zypper que me ofrece una integración de los comandos de zypper con Fish, pero hay muchos otros disponibles!!

Espero que os haya resultado úitl. Me gustará ver capturas de pantalla de vuestras Shell! Y podéis compartir en los comentarios qué paquete de Fish os resulta indispensable!!

a silhouette of a person's head and shoulders, used as a default avatar

6 formas de seguir a KDE España

En este mundo cada vez más diversificado pero más unid ola presencia en las redes sociales es imprescindible y la asociación española de desarrolladores, usuarios y simpatizantes de KDE lo sabe. Así que aprovechando la nueva presencia de KDE España en Instagram, os quiero recordar 6 formas de seguir a KDE España en este mundo 2.0.

6 formas de seguir a KDE España

Aunque la mayoría de los seguidores del blog lo sabrán, KDE tiene en España una excelente cantera de programadores, promotores, diseñadores, ideólogos, traductores, etc. Un buen día decidieron crear una asociación con el objetivo de dinamizar el desarrollo y uso del entorno de escritorio KDE.

Como no podía ser de otra manera, esa organización recibió el nombre de KDE España. Entre sus misiones está organizar Akademy-es, coordinar diferentes grupos de trabajo  promocionar al máximo KDE y el Software Libre.

Para conocer mejor esta asociación os podéis dirigir a su página web, donde podéis ver sus últimas novedades y las informaciones básicas de las Akademy-es, así como objetivos, sus estatutos, etc.

No obstante, esta página se centra básicamente en cosas muy institucionales relacionadas con KDE, pero si queréis saber más cosas sobre lanzamientos, aplicaciones, diseños, vídeos, noticias sobre otros Proyectos Libres os aconsejo nuestras noticias en las diferentes redes sociales que tenemos.

1. Instagram

De momento tenemos pocos seguidores, a la vez que pocas publicaciones, pero no se puede dejar de lado una de las redes sociales más populares entre los jóvenes: Instagram.

En esta red social encontrarás el lado más humano. Esperemos que crezca mucho con el tiempo.

2. Telegram

Lo anuncié en su tiempo, pero no lo había puesto en un artículo de este tipo. KDE España también está presente en la cada vez más popular red de mensajería instantánea Telegram.

KDE España creó y utilizó un grupo de Telegram para comunicarse con los participantes de Akademy-es 2016 de Madrid, y fue tal el éxito que decidimos continuar con esta red cambiándole al nombre a Cañas y Bravas (@kde_canasbravas) en el que diariamente los simpatizantes de este entorno de trabajo hablan de todo tipo de cosas.

2. Mastodon

Una red social que se ha añadido pero que no he promocionado en el bog (mal, muy mal Balta) al entramado de vías de comunicación de KDE España ha sido Mastodon la alternativa libre de Twitter.

Esta red la teníamos pendiente desde hace un tiempo y ahora nos hemos metido de llena en ella. De momento tenemos pocos seguidores pero esperamos crecer rápidamente. En realidad nos gustaría solo utilizar esta y Diáspora, pero en ocasiones no se pueden utilizar solo proyectos libres.

3. Twitter

Evidentemente, también estamos en la red más cotilla de todas: Twitter. En esta red ya tenemos más de 1500 seguidores y es la que se suele utilizar para retransmitir eventos como Akademy-es que se pueden seguir mediante la etiqueta #akademyes.

 

4. Facebook

Otro canal que tenemos abierto es nuestra página de Facebook, donde podéis encontrar las misma noticias que en Twitter. Para los que solo utilizan la red social de Mark. Lamentablemente, es una red que tenemos poco cuidada ¿alguien se anima a ayudarnos a que esto no pase?

 

5. LinkedIn

Para finalizar no podría faltar la red social más enfocada a los profesionales. De esta forma también puedes encontrar noticias de KDE y del Software Libre en el grupo de KDE España en LinkedIn.

 

Como se puede comprobar, múltiples formas de conocer todo lo que se cuece en la organización KDE España, y eso sin olvidar las listas de correo, Planet KDE en Español, los foros de KDE o los canales de irc…. Y lo que tiene que llegar.

No obstante, todo esto requiere tiempo y trabajo por parte de los integrantes de un grupo de Comunicación de KDE España que últimamente se ve desbordado. Así que, si quieres contribuir al Software Libre de una forma sencilla, no dudes en echarnos una mano. El proyecto KDE te lo agradecerá.

 

a silhouette of a person's head and shoulders, used as a default avatar

Introducing the MetaInfo Creator

This year’s FOSDEM conference was a lot of fun – one of the things I always enjoy most about this particular conference (besides having some of the outstanding food you can get in Brussels and meeting with friends from the free software world) is the ability to meet a large range of new people who I wouldn’t usually have interacted with, or getting people from different communities together who otherwise would not meet in person as each bigger project has their own conference (for example, the amount of VideoLAN people is much lower at GUADEC and Akademy compared to FOSDEM). It’s also really neat to have GNOME and KDE developers within reach at the same place, as I care about both desktops a lot.

An unexpected issue

This blog post however is not about that. It’s about what I learned when talking to people there about AppStream, and the outcome of that. Especially when talking to application authors but also to people who deal with larger software repositories, it became apparent that many app authors don’t really want to deal with the extra effort of writing metadata at all. This was a bit of a surprise to me, as I thought that there would be a strong interest for application authors to make their apps look as good as possible in software catalogs.

A bit less surprising was the fact that people apparently don’t enjoy reading a large specification, reading a long-ish intro guide with lots of dos and don’ts or basically reading any longer text at all before being able to create an AppStream MetaInfo/AppData file describing their software.

Another common problem seems to be that people don’t immediately know what a “reverse-DNS ID” is, the format AppStream uses for uniquely identifying each software component. So naturally, people either have to read about it again (bah, reading! 😜) or make something up, which occasionally is wrong and not the actual component-ID their software component should have.

The MetaInfo Creator

It was actually suggested to me twice that what people really would like to have is a simple tool to put together a MetaInfo file for their software. Basically a simple form with a few questions which produces the final file. I always considered this a “nice to have, but not essential” feature, but now I was convinced that this actually has a priority attached to it.

So, instead of jumping into my favourite editor and writing a bunch of C code to create this “make MetaInfo file” form as part of appstreamcli, this time I decided to try what the cool kids are doing and make a web application that runs in your browser and creates all metadata there.

So, behold the MetaInfo Creator! If you click this link, you will end up at an Angular-based web application that will let you generate MetaInfo/AppData files for a few component-types simply by answering a set of questions.

The intent was to make this tool as easy to use as possible for someone who basically doesn’t know anything about AppStream at all. Therefore, the tool will:

  • Generate a rDNS component-ID suggestion automatically based on the software’s homepage and name
  • Fill out default values for anything it thinks it has enough data for
  • Show short hints for what values we expect for certain fields
  • Interactively validate the entered value, so people know immediately when they have entered something invalid
  • Produce a .desktop file as well for GUI applications, if people select the option for it
  • Show additional hints about how to do more with the metadata
  • Create some Meson snippets as pointers how people can integrate the MetaInfo files into projects using the Meson build system

For the Meson feature, the tool simply can not generate a “use this and be done” script, as each Meson snippet needs to be adjusted for the individual project. So this option is disabled by default, but when enabled, a few simple Meson snippets will be produced which can be easily adjusted to the project they should be part of.

The tool currently does not generate any release information for a MetaInfo file at all, This may be added in future. The initial goal was to have people create any MetaInfo file in the first place, having projects also ship release details would be the icing on the cake.

I hope people find this project useful and use it to create better MetaInfo files, so distribution repositories and Flatpak repos look better in software centers. Also, since MetaInfo files can be used to create an “inventory” of software and to install missing stuff as-needed, having more of them will help to build smarter software managers, create smaller OS base installations and introspect what software bundles are made of easily.

I welcome contributions to the MetaInfo Creator! You can find its source code on GitHub. This is my first web application ever, the first time I wrote TypeScript and the first time I used Angular, so I’d bet a veteran developer more familiar with these tools will cringe at what I produced. So, scratch that itch and submit a PR! 😉 Also, if you want to create a form for a new component type, please submit a patch as well.

C developer’s experience notes for Angular, TypeScript, NodeJS

This section is just to ramble a bit about random things I found interesting as a developer who mostly works with C/C++ and Python and stepped into the web-application developer’s world for the first time.

For a project like this, I would usually have gone with my default way of developing something for the web: Creating a Flask-based application in Python. I really love Python and Flask, but of course using them would have meant that all processing would have had to be done on the server. One the one hand I could have used libappstream that way to create the XML, format it and validate it, but on the other hand I would have had to host the Python app on my own server, find a place at Purism/Debian/GNOME/KDE or get it housed at Freedesktop somehow (which would have taken a while to arrange) – and I really wanted to have a permanent location for this application immediately. Additionally, I didn’t want people to send the details of new unpublished software to my server.

TypeScript

I must say that I really like TypeScript as a language compared to JavaScript. It is not really revolutionary (I looked into Dart and other ways to compile $stuff to JavaScript first), but it removes just enough JavaScript weirdness to be pleasant to use. At the same time, since TS is a superset of JS, JavaScript code is valid TypeScript code, so you can integrate with existing JS code easily. Picking TS up took me much less than an hour, and most of its features you learn organically when working on a project. The optional type-safety is a blessing and actually helped me a few times to find an issue. It being so close to JS is both a strength and weakness: On the one hand you have all the JS oddities in the language (implicit type conversion is really weird sometimes) and have to basically refrain from using them or count on the linter to spot them, but on the other hand you can immediately use the massive amount of JavaScript code available on the web.

Angular

The Angular web framework took a few hours to pick up – there are a lot of concepts to understand. But ultimately, it’s manageable and pretty nice to use. When working at the system level, a lot of complexity is in understanding how the CPU is processing data, managing memory and using the low-level APIs the operating system provides. With the web application stuff, a lot of the complexity for me was in learning about all the moving parts the system is comprised of, what their names are, what they are, and what works with which. And that is not a flat learning curve at all. As C developer, you need to know how the computer works to be efficient, as web developer you need to know a bunch of different tools really well to be productive.

One thing I am still a bit puzzled about is the amount of duplicated HTML templates my project has. I haven’t found a way to reuse template blocks in multiple components with Angular, like I would with Jinja2. The documentation suggests this feature does not exist, but maybe I simply can’t find it or there is a completely different way to achieve the same result.

NPM Ecosystem

The MetaInfo Creator application ultimately doesn’t do much. But according to GitHub, it has 985 (!!!) dependencies in NPM/NodeJS. And that is the bare minimum! I only added one dependency myself to it. I feel really uneasy about this, as I prefer the Python approach of having a rich standard library instead of billions of small modules scattered across the web. If there is a bug in one of the standard library functions, I can submit a patch to Python where some core developer is there to review it. In NodeJS, I imagine fixing some module is much harder.

That being said though, using npm is actually pretty nice – there is a module available for most things, and adding a new dependency is easy. NPM will also manage all the details of your dependency chain, GitHub will warn about security issues in modules you depend on, etc. So, from a usability perspective, there isn’t much to complain about (unlike with Python, where creating or using a module ends up as a “fight the system” event way too often and the question “which random file do I need to create now to achieve what I want?” always exists. Fortunately, Poetry made this a bit more pleasant for me recently).

So, tl;dr for this section: The web application development excursion was actually a lot of fun, and I may make more of those in future, now that I learned more about how to write web applications. Ultimately though, I enjoy the lower-level software development and backend development a bit more.

Summary

Check out the MetaInfo Creator and its source code, if you want to create MetaInfo files for a GUI application, console application, addon or service component quickly.