December 01, 2022

The second Open Source MANO (OSM) release with Long Term Support (LTS) has landed. Open Source MANO Release TWELVE offers two years of support with security patches. The release has outstanding features to offer to both VNF vendors and system integrators residing in the MANO (Management and Network Orchestration) ecosystem. ETSI OSM (Open Source MANO) can be integrated with multiple cloud platforms and virtual infrastructure managers (VIM). Service providers and operators leverage the OSM platform to run services either on virtual machines (VMs) or containerised frameworks, i.e Kubernetes. This release offers the much-awaited features of auto-scaling and auto-healing for telco networks.

The model-driven approach in OSM makes Network Functions (NFs) reusable and portable. Reusability offers the following operational benefits: 

  • Layer abstraction reduces complexity. 
  • Errors are minimised with fewer changes required in packages. 
  • Optimised deployment times. 
  • Minimal human efforts are required.
  • Multi-site reliable deployments.
  • Ideal for CI/CD pipelines to execute testing. 
  • Advanced redundancy mechanisms to make services highly available.

OSM release TWELVE’s features are more aligned with telco industry use cases and demands. Key additions include:

  • Self-healing of network functions: Release TWELVE possesses novel features for automated network function healing. The intent for VNFs is specified via VNF descriptors including healing capabilities. For example, if an instance has crashed due to failure, human intervention is no longer needed. OSM will automatically recover the instance from failure with its auto-healing functionality. Manual healing is also enabled through the latest API  developed under GS NFV-SOL005 ETSI specifications.
  • Support for ETSI SOL003 specification: OSM integrated a new API developed under the ETSI SOL003 specification. This API enables communication between the VNF manager and the orchestrator. It enables third-party solutions to manage NF lifecycles easily, including operations like creating, managing, updating, and deleting VNFs.
  • Update of network function  Day-2 operations: the release includes support for upgrading the existing, running instances of Network Services (NS).
  • Support for anti-affinity: VNFs now run in high availability using anti-affinity groups. The group is defined in description intent ensuring VDUs for NF are deployed on multiple hosts enabling redundancy. This feature is supported in OpenStack only.
  • Extensions for CNF/K8s support:  this release matures the Day-2 primitives of CNFs. OSM is empowered to discover services managed by proxy charms using its Kubernetes deployment units (KDUs). It is achieved through intent definitions for VNFs or CNFs descriptors. Restricted K8s cluster initialisation and registration for Helm-based KDU or Juju-based KDU is also enabled.
  • Security:  Improved security measures are now supported including forced password management on the first login and password expiry after the defined time limit. 
  • Support for NFVI level metrics that has been monitored from Prometheus as part of OpenStack telemetry. 
  • Support for vertical scaling of OpenStack VM instances. 
  • Support for OpenStack VM instance migrations. 
  • Support for improved alarm notification channels.

This webinar for Release TWELVE zooms in on the following few features from the list above:

  • Upgrading a running instance of NF to use updated descriptors including policies like auto-scaling and auto-healing. 
  • Removal of an existing NF instance from a running NS. 
  • Changing operational states for NF and its vDU. 

Live upgrade

Seamless upgrades to running CNF instances give better flexibility to apply Day-2 primitives without having to stop them first. It enables operators to apply new changes. The release TWELVE webinar demonstrated a similar feature by deploying a CNF on the Kubernetes cluster. Day-2 primitives were performed on a running CNF.

Telco network auto-healing 

The ability of a platform to recover automatically from failures is a good use case for operators. In the release webinar, one of the 5G core components, AMF, was deleted to showcase how OSM behaves against sudden failures. Instantly, a new instance gets launched to match desired intent in VNF descriptors. The auto-healing feature is specified as intent in descriptors and lets OSM take care of failures with its zero-touch automation.

Telco network auto-scaling

Similarly, the auto-scaling policy is defined in the VNF descriptor to scale-out VNF instances against a threshold. In the webinar, the traffic for UPF instance has been increased to hit the threshold for CPU utilisation and as a result OSM triggered a scaling action for UPF instance to handle the additional traffic. The overall process is instantaneous and smooth and no user has been affected. When the traffic load decreases, the VNFs automatically scale into the actual state. This automatic scaling feature offers optimal resource utilisation for a network service.


OSM Release TWELVE brings valuable features to OSM by targeting practical use cases. VNF vendors and service providers can leverage new LTS releases and benefit from multi-cloud platforms and live upgrade compatibility. OSM is at the heart of the NFV domain delivering compelling features for innovators to focus on cost optimisation, network automation and enhancements as technology evolves. Release TWELVE delivers features like auto-scaling and auto-healing to telcos for their mission critical and production grade networks. It enables flexibility and agility for networks so VNF/CNF vendors can focus on delivering quality services.

on December 01, 2022 02:18 PM

E223 Bifurcação

Podcast Ubuntu Portugal

O Constantino tem, mais um, projecto falecido! O seu novíssimo mastodon não resistiu a um agressivo ataque de Influenza e colapsou! Depois das bonitas cerimónias fúnebres a conversa seguiu com informação detalhada sobre a receber OTA-24 do Ubuntu Touch e os planos para as novidades, nem todas boas, da OTA-25. Já sabem: oiçam, subscrevam e partilhem!


Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem. Se estiverem interessados em outros bundles não listados nas notas usem o link e vão estar também a apoiar-nos.

Atribuição e licenças

Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo Senhor Podcast. O website é produzido por Tiago Carrondo e o código aberto está licenciado nos termos da Licença MIT. A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da CC0 1.0 Universal License. Este episódio e a imagem utilizada estão licenciados nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.

on December 01, 2022 12:00 AM

November 30, 2022

As awesome as the default Kinetic Kudu desktop is, we know many Ubuntu users love to customize their workspace. If you count yourself among that crowd, you’ll be pleased to know that Ubuntu 22.10 comes packed with some incredible backgrounds from our most recent Wallpaper Competition. 

The community was given the difficult task of reviewing nearly 50 amazing submissions from their fellow community members and choosing their favorites. The initial plan was to include the top 5 into the Kudu release, but due to a surprise tie, a bonus 6th wallpaper was included! 

Here are the chosen winners:

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Reflection” by juliettetaka
<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Obersee” by UNakade
<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Sunset Over Lake Lugano” by doctor-rover
<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Twisted Gradients” by g0b
<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Kinetic Kudu (with light and dark theme)” by jt05
<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>
“Saffron” by rakeshkryadav

You can view and download all of the excellent submissions over on the original Ubuntu discourse post. The Community Team would like to thank all of those who submitted an entry, voted and helped spread the word. The wallpaper contest is just one of many ways you can help contribute to the Ubuntu ecosystem. To see the many ways you can get involved, check out the official Ubuntu wiki.

More ways to make Kinetic kick

A fresh wallpaper isn’t the only way to make Ubuntu Kinetic Kudu yours. Here are some other ways to give your desktop that personalized flair:

Try out Dark Mode

Not only does it save your eyes, it also looks really cool. You can enable it in the Appearance section in Settings.

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>

Or via quick toggle in the handy new Quick Settings menu.

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>

Change the Accent Color

Orange and purple aren’t your colors? No problem! You can easily change Ubuntu’s accent color in the Appearance section in Settings.

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>

Change the Dock Position

🎵 Slide to the left, slide to the right, can you go down low? 🎵 

The answer is YES. You can change the position, size and visibility of the Ubuntu dock anytime in the Ubuntu Desktop section in Settings.

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>

Take an Ubuntu flavor for a Test Drive

If you really want to mix things up, why not sample one of the many official Ubuntu flavors?

<noscript> <img alt="" src=",q_auto,fl_sanitize,c_fill,w_720/" width="720" /> </noscript>

on November 30, 2022 09:35 AM

November 28, 2022

Welcome to the Ubuntu Weekly Newsletter, Issue 763 for the week of November 20 – 26, 2022. The full version of this issue is available here.

In this issue we cover:

The Ubuntu Weekly Newsletter is brought to you by:

  • Krytarik Raido
  • Bashing-om
  • Chris Guiver
  • Wild Man
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, this issue of the Ubuntu Weekly Newsletter is licensed under a Creative Commons Attribution ShareAlike 3.0 License

on November 28, 2022 10:27 PM
The Lubuntu Team is happy to announce that the Lubuntu Backports PPA with LXQt 1.2 is now available for general use.
on November 28, 2022 09:00 PM

November 26, 2022

Market Data section of the Financial Times US Edition print edition from May 5, 2021.

If you’ve flipped through printed broadsheet newspapers, you’ve probably seen pages full of tiny text listing prices and other market information for stocks and commodities. And you’ve almost certainly just turned the page. Anybody interested in this market prices today will turn to the internet where these numbers are available in real time and where you don’t need to squint to find what you need. This is presumably why many newspapers have stopped printing these types of pages or dramatically reduced the space devoted to them. Major financial newspapers however—like the Financial Times (FT)—still print multiple pages of market data daily. But does anybody read them?

The answer appears to be “no.” How do I know? I noticed an error in the FT‘s “Market Data” page that anybody looking in the relevant section of the page would have seen. And I have watched it been reproduced every single day for the last 18 months.

In early May last year, I noticed that the the Japanese telecom giant Nippon Telegraph and Telephon (NTT) was listed twice on the FT‘s list of the 500 largest global companies: once as “Nippon T&T” and also as “Nippon TT.” One right above the other. All the numbers are identical. Clearly a mistake.

Reproduction of the FT Market Data section showing a subset of Japanese companies from the FT 500 list of global companies. The duplicate lines are highlighted in yellow. This page is from today’s paper (November 26, 2022).

Wondering if it was a one-off error, I looked at a copy of the paper from about a week before and saw that the error did not exist then. I looked a copy from one day before and saw that it did. Since the issue was apparently recurring, but new at the time, I figured someone at the paper would notice and fix it quickly. I was wrong. It has been 18 months now and the error has been reproduced every single day.

Looking through the archives, it seems that the first day the error showed up was May 5, 2021. I’ve included a screenshot from the electronic paper version from that day—and from the fifth of every month since then (or the sixth if the paper was not printed on the fifth)—that shows that the error is reproduced every day. A quick look in the archives suggests it not only appears in the US edition but also in the UK, European, Asian, and Middle East editions. All of them.

Why does this matter? The FT prints over 112,000 copies of its paper, six days a week. This duplicate line takes up almost no space, of course, so it’s not a big deal on its own. But devoting two full broadsheet pages to market data that is out date as soon as it is printed—much of which nobody appears to be reading—doesn’t seem like a great use of resources. There’s an argument to made that papers like the FT print these these pages not because they are useful but because doing so is a signal of the publications’ identities as serious financial papers. But that hardly seems like a good enough reason on its own if nobody is looking at them. It seems well past time for newspapers to stop wasting paper and ink on these pages.

I respect that some people think that printing paper newspapers at all is wasteful when one can just read the material online. Plenty of people disagree, of course. But who will disagree with a call to stop printing material that evidence suggests is not being seen by anybody? If an error this obvious can exist for so long, it seems clear that nobody—not even anybody at the FT itself—is reading it.

on November 26, 2022 08:37 PM

November 25, 2022

Full Circle Magazine #187

Full Circle Magazine

This month:
Command & Conquer
* How-To : Python, Blender and Latex
* Graphics : Inkscape
Everyday Ubuntu
Micro This Micro That
* Review : Ubuntu 22.10
* Review : VanillaOS
* Review : Ventoy
Tabletop Ubuntu
* Ubuntu Games : Pixel Wheels
plus: News, My Story, The Daily Waddle, Q&A, and more.

Get it while it’s hot:

on November 25, 2022 07:12 PM

November 24, 2022

E222 Jardim Das Borboletas

Podcast Ubuntu Portugal

O Constantino tem, mais um, novo projecto! Este não foi pensado para a comunidade, apenas para seu belo prazer… A conversa desta semana centrou-se no Mastodon e assuntos relacionados com algum tempo ainda para olharmos para os novos lançamentos do Firefox, com grande preocupação no consumo, e poupança de energia. Já sabem: oiçam, subscrevam e partilhem!


Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem. Se estiverem interessados em outros bundles não listados nas notas usem o link e vão estar também a apoiar-nos.

Atribuição e licenças

Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo Senhor Podcast. O website é produzido por Tiago Carrondo e o código aberto está licenciado nos termos da Licença MIT. A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da CC0 1.0 Universal License. Este episódio e a imagem utilizada estão licenciados nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.

on November 24, 2022 12:00 AM

November 23, 2022

We had a call for nominations for the Ubuntu Membership Board and then voted in the Community Council.

The following people have been elected to the Ubuntu Membership Board for the next two years:

  • Khairul Aizat Kamarudzzaman (fenris)
  • Dani Llewellyn (diddledani)
  • Billy D. Quinn (Bashing-om)
  • Mattia Rizzolo (mapreri)
  • Miles Sharpe (Kilos)
  • Larry Tarvin (wild_man)

Congratulations to all of you. We look forward to a good collaboration.

Originally posted to the Ubuntu Community Hub on Wed Nov 23 2022 by Torsten Franz, on behalf of the Community Council

on November 23, 2022 10:09 AM

The Certified Kubernetes Administrator (CKA) exam evaluates your ability to operate a Kubernetes (K8s) cluster and your knowledge of how to run jobs over the cluster.

I recently passed the exam, so I would like to share some tips and tricks, and how I prepared for it.

Illustration: road to knowledge

Illustration by unDraw.


Before taking the exam, I already had extensive experience using K8s, however always through managed services. I had to learn everything about how a K8s cluster is actually run.

I am grateful to my employer, Google, for providing me with the time to study and covering all expenses.

I used the course hosted over A Cloud Guru. It is up-to-date, and covers everything needed for the CKA. The course is very hands-on, so if you sign up for it, I recommend doing the laboratories (they provide the environment) because the exam is a long series of tasks similar to what you would be asked to do during the lab sections of this course.

Furthermore, you should learn how to navigate the K8s doc. You can use it during the exam, so there is no point in learning every single field of every single resource. Do you need to create a pod? Go to the documentation for it, copy the basis example, and customize it.


When you register for the CKA certification exam on the Linux Foundation site, you will receive access to a simulated exam hosted by The simulation is significantly more difficult and longer than the actual exam: I attempted a simulation two days before the exam, and I achieved 55%. On the actual exam, 91%.

I highly recommend taking the simulation, not only to see how prepared you are, but to familiarize yourself with the exam environment.

The exam

The exam is 2 hours long, with a variable number of tasks. Points are also assigned based on how many tasks of a question you answered. You need a score of 66% to clear the exam.

During the exam you can access K8s documentation, use this power to your advantage. The environment in which the exam will run is based on XFCE. You will have a browser, a note pad, and a terminal you can use.

Being familiar with vi can help you work more quickly, especially if you spend a lot of time in there, and you just use the browser to read the documentation.

You can use the note pad to keep track of which questions you skipped, or you want to revise later.

During your exam, you will work on multiple K8s clusters. Each question is about one cluster, and at the beginning of the question, it says which context you should use. Don’t skip to answer the question without having switched context!


To attend the exam, you will have to download a dedicated browser, called PSI Safe Browser. You cannot download this in advance, it will be unlocked for you only 30 minutes before the beginning of the exam.

Theoretically, it is compatible with Windows, macOS, and Linux: however, many users have problems under Linux. Be aware that there could be issues, and have a macOS or Windows machine available, if possible, as a backup plan.

This browser will make sure that you are not running any background application, and that you don’t have multiple displays (only one monitor, sorry!).

After you installed the browser, you will have to identify yourself with some official document. You will have to show that you are alone in the room, that your desk is clean, that there is nothing under your desk, and so on. You will have to show your smartphone, and then show that you place it in some unreachable place. The whole check-in procedure takes time, and it is error-prone (I had to show the whole room twice, then the browser crashed, and I had to start from scratch again).

The onboarding procedure is the most stressful part of the exam: read all the requirements on the Linux Foundation Website, try to clear your desk from any unrelated thing, and start the procedure as soon as possible. In my case, it took almost 50 minutes.

Their browser is not a perfect piece of software: in my case, the virtual environment inside this browser had a resolution of 800x600, making it impossible to have two windows on a side-by-side. However, you spend the huge majority of your time in the terminal, and sometimes on the browser to copy-paste snippets from the browser.


  • Keep a Windows or macOS machine nearby, if Linux doesn’t work for you;
  • Answering a question partially is better than not answering at all;
  • Always double-check the K8s context! First thing you must do for each question, it is switching the context of your kubectl according to instructions;
  • Create files for each resource you create, so you can go back and adjust stuff. Moreover, if you have time at the end of the exam, makes way easier to check what you have done;
  • Remember to have a valid ID document with you for the exam check-in;


Time constraints and the unfamiliar environment will be your greatest challenges: however, if you have used K8s in production before, you should be able to clear the exam without any major difficulty. Spending sometime training before is strongly suggested, no matter your level of expertise, just to understand the format of the exam.

Good luck, and reach out if you have any question, here in the comments or by email at


on November 23, 2022 12:00 AM

November 20, 2022

Visiting The Cave

Alan Pope

If you only want to know about my visit to The Cave and not the nonsense about my aracde boards, feel free to scroll down to “Three Wise Men” Note: I’ve embedded some posts from Twitter (where there’s engagement with other Tweeps) and other posts from Mastodon, because, y’know. Yesterday I had cause to visit Bristol in the west of England. I live in Farnborough, in the South East of England, so it’s a two-hour journey each way.
on November 20, 2022 12:00 PM

November 19, 2022

The Lubuntu Team is happy to announce that an update to LXQt 1.2 through the Lubuntu Backports PPA is now available as a beta.
on November 19, 2022 05:12 AM

November 18, 2022

Our friends at Ardour have released Version 7.1, and we would like to offer them huge congratulations! While the source code and their own builds were available on release day, many of you have been waiting for Ardour 7 to come to Ubuntu’s repositories.

That day has come. Ardour 7.1 will be landing in Ubuntu Lunar Lobster (future 23.04) and will be on Ubuntu Studio’s daily spins of Lunar Lobster very soon.

Unfortunately, it is not possible to backport Ardour 7.1 into Ubuntu 22.04 LTS or 22.10, nor would we want to. This is because if we do, we might disrupt the workflow of people who are currently working with projects in 6.9 that are relying on its functionality and sound. Ardour 7.1 projects are not backwards compatible with Ardour 6.9 projects; once a 6.9 project is opened in 7.1, it is converted to a 7.1 project and cannot be used in 6.9 again unless restored from a backup.

This is also the reason we will not be releasing Ardour 7.1 into Ubuntu Studio’s main Backports PPA. However, we are giving Ardour its own Backports PPA so that users may upgrade Ardour in their Ubuntu (Studio) 22.04 LTS or 22.10 installation whenever they are ready.

To upgrade Ardour to 7.1, open a terminal and type the following:

sudo add-apt-repository ppa:ubuntustudio-ppa/ardour-backports
sudo apt upgrade

If at any point you change your mind and want to revert to Ardour 6.9 (and hopefully haven’t converted any projects):

sudo apt install ppa-purge
sudo ppa-purge ppa:ubuntustudio-ppa/ardour-backports

Enjoy Ardour 7.1! If you find it useful, please consider downloading and paying for the official package from Ardour themselves. They more than deserve it!

on November 18, 2022 05:05 PM
Depending on who you speak to, Twitter is (or isn’t) in turmoil, and Mastodon is (or isn’t) here to supplant (or backup (or not)) the “de facto town square”. Whether any of that is true or not, there’s been a surge in people signing up, and trying out the Mastodon experience. (via this tweet) For those who aren’t familiar with all this, learn more about Mastodon over at the friendly-looking main Join Mastodon site.
on November 18, 2022 12:00 PM

November 16, 2022

First, I would like to send a big Thank you! to Canonical for sponsoring my trip to Prague for the Ubuntu Summit! It was a great success. I saw some great talks and valuable workshops. I now know how to snap our applications the have daemons and services thanks to the Snapping Daemons and Services workshop. Prague itself is an amazing city. Wow. Just wow. I got to see old friends and meet many new ones. I will take away some wonderful memories. Did I mention a river cruise? Yes! It was great fun.

I did a lightning talk with Jonathon and a Snapping Desktop Applications workshop with Olivier. The talk was “lightning” fast! But good practice for my speech giving skills ( a challenge for a shy person such as myself!) The workshop was great presentations of different ways snaps are done for different projects. The audience was smaller than I had hoped ( it was the end of the summit and many folks were wrapping up to leave.) I still left with a feeling of accomplishment.

This week I will apply my new found knowledge and push out some more snaps!

on November 16, 2022 07:09 PM

November 14, 2022

Ubuntu Summit 2022 Prague

Jonathan Riddell

Arriving for the first session

One of the lovelyest things about open community development is you can do it from home but you also get to travel to fancy places to meet your fellow devs and share ideas. Lockdowns stopped that for two years but with Akademy last month it felt like open tech life could return to a more fun state. Then came the return of a meeting that had last happened a decade ago, the Ubuntu Summit. A bunch of KDE devs were invited, me (who does KDE neon), Ade (who does Calamares installer), Scarlett (who does Snap packages), Aleix (who does Discover app installers), Harald (KDE neon), Luca (OpenRazor and hangs around KDE).

Scarlett Gives a Workshop on KDE apps as Snap packages

Unlike the old Ubuntu Developer Summits this wasn’t aimed at planning the next Ubuntu release, they had already spent the last two weeks in the same hotel doing that. This was just a fun sharing of ideas conference where people gave talks and workshops on what they were working on.

Me and Scarlett gave a lightning talk on KDE Snaps and Scarlett gave a workshop on KDE Snaps. KDE has over 100 apps in the Snap store, a great way to get KDE software promptly.

Ade gave a talk about his Calamares distro installer and compared it to Ubuntu’s installer which is being rewritten in Flutter. Harald gave talks on KDE neon and on secrets of KDE Plasma. Aleix spoke about the KDE community and what we do. Ade also talked about KDE Frameworks.

KDE 1 mascot Kandalf is Harald’s favourite character

There was plenty of talks on Snaps, it’s how Canonical makes money where it’s used in embedded devices, if you can call a 10 ton steel press an embedded device. Adam Szopa works for KDE and also Canonical and he gave a talk on Linux gaming, I hear Canonical has a whole team just to get gaming working well. Canonical also makes money from Microsoft’s Windows Services for Linux (WSL) and there were a bunch of talks showing this off. Using JuJu to set up servers is another large project Canonical works on which had some talks. Flutter seems very fashionable, a rival to Qt that is gaining attention, it uses the Dart programming language and is designed for mobile devices but Canonical has been working with Google to port it to Linux desktops (using GTK).

KDE spods at Ubuntu Summit 2022

It was great to catch up with Erich Eickmeyer who makes Ubuntu Studio and works for Kubuntu Focus selling laptops with Plasma. Ubuntu Studio ships with Plasma of course. I spoke to him about Wayland and he says the next release (for Ubuntu plus Plasma) is looking great for Wayland.

It was also great to meet Simon Quigley (tsimonq2) who does Lubuntu and has worked on Kubuntu. LxQt is a lightweight Linux desktop and probably one of the largest users of KDE Frameworks outside KDE, they use KScreen, KIdleTime, Solid, KWindowSystem and probably other Frameworks.

Head Honcho Shuttleworth

Canonical is reported to be profitable and hiring (after some “brutal times”) and spirits seem to be good. They have a community team now and are keen to engage.

There were also inspiring talks from e.g. a Zimbabwean developer talking about the challenges of taking software development on donkeys here he lives. Geopolitics is an interesting subject but one aspect I’ve not thought about before is how countries with a coastline can connect their internet directly to the world while countries without such as Zimbabwe are dependent on neighbouring countries to pass it through.

Lorenzo’s Music is an open source band who create on Github using Ubuntu Studio and Kdenlive. They gave a great performance on the river boat cruise under the Charles bridge in Prague.

Thanks to Canonical for sponsoring travel and helping us re-engage.

on November 14, 2022 01:49 PM

November 11, 2022

I’ve just made a new 5.3.1 release of Grantlee. The 5.3.0 release had some build issues with Qt 6 which should now be resolved with version 5.3.1.

Unlike previous releases, this release will not appear on I’ll be turning off soon. All previous releases have already been uploaded to

The continuation of Grantlee for Qt 6 is happening as KTextTemplate so as not to be constrained by my lack of availability. I’ll only make new Grantlee patch releases as needed to fix any issues that come up in the meantime.

Many thanks to the KDE community for taking up stewardship and ownership of this library!

on November 11, 2022 08:55 PM

November 07, 2022

The twenty-third edition will take place Saturday 4th and Sunday 5th February 2023 in Brussels, Belgium.

Key dates / New updates

  • Conference dates 4-5 February, 2023 In person
  • Community DevRoom date: Sunday 5th February
  • Submission deadline: Monday 21st November
  • Announcement of selected talks: Thursday 15th December 
  • You must be available in person to present your talk
  • Talk submissions should be 30 mins and this should include Q&A time.


The Community DevRoom will be back at FOSDEM 2023 (In Person). Our goals in running this DevRoom are to:

  • Educate those who are primarily software developers on community-oriented topics that are vital in the process of software development, e.g. effective collaboration
  • Provide concrete advice on dealing with squishy human problems
  • To unpack preconceived ideas of what community is and the role it plays in human society, free software, and a corporate-dominated world in 2021
  • We are seeking proposals on all aspects of creating and nurturing communities for free software projects


Here are some topics we are interested in hearing more about this year:

  • Creating local-first communities and authentic and sustainable connections with contributors who are not able to attend in person
  • Sustainability in FOSS from a community perspective, e.g. keeping contributors motivated and able to pay their bills and addressing maintainer burnout
  • Creating a community around a corporate sponsored open source project that is respectful of its users and FOSS principles
  • Self-care in our communities, for both community members and community leaders, e.g. how are we all dealing with burnout and the ongoing impact of the pandemic
  • Balancing community expectations with company objectives in a manner that is respectful, authentic, and serves both audiences well 
  • Community Management best practices
  • Dealing with toxic people
  • Rewarding volunteer contributors and keeping volunteers motivated
  • Effective collaboration techniques
  • Recruiting new people to your project
  • Creative ways to engage and grow your developer community

Again, these are just suggestions. We welcome proposals on any aspect of community building!


  • If you already have a Pentabarf account, please don’t create a new one.
  • If you forgot your password, reset it. 
  • Otherwise, follow the instructions to create an account.
  • Once logged in, select “Create Event” and click on “Show All” in the top right corner to display the full form. 
  • Your submission must include the following information: 
  • First and last name / Nickname (optional)/ Image
  • Email address
  • Mobile phone number (this is a very hard requirement as there will be no other reliable form of emergency communication on the day)
  • Title and subtitle of your talk (please be descriptive, as titles will be listed with ~500 from other projects)
  • Track: Select “Community DevRoom” as the track
  • Event type: Lecture (talk) 
  • Persons: Add yourself as the speaker with your bio
  • Description: Abstract (required)/ Full Description (optional)
  • Links to related websites / blogs etc. 
  • Beyond giving us the above, let us know if there’s anything else you’d like to share as part of your submission – Twitter handle, GitHub activity history – whatever works for you. We especially welcome videos of you speaking elsewhere, or even just a list of talks you have done previously. First time speakers are, of course, welcome!
  • For issues with Pentabarf, please contact Feel free to send a notification of your submission to that email. 

If you need to get in touch with the organisers or program committee of the Community DevRoom, email us at

Shirley Bailes, Leslie Hawthorn, and Laura Czajkowski – Community DevRoom Co-Organizers

FOSDEM website / FOSDEM code of conduct

on November 07, 2022 03:09 PM

October 31, 2022

Another continuation of ! This week I solved a few more problems.

  • Lokalize: Dictionaries are now available via the hunspell content snap! To enable:

sudo snap install hunspell-dictionaries

sudo snap connect lokalize:hunspell-dictionaries-plug hunspell-dictionaries:hunspell-dictionaries

  • Ktorrent: First time release on both amd64 and arm64! Closes bug 412734
  • Kdenlive: Glaximate animations are now available! Closes bug 459338
Kdenlive with Glaximate animations!
  • Okular
  • Kgeography
  • Kpatience
  • Palapeli: Now launches! Closes bug 426177
  • Krdc: Now on arm64!
  • Kdiamond: Now with sound!

More coming tomorrow!

Please consider donating! Helps keep the lights on so I can get more Kool software out to you.

Cash App $ScarlettMoore0903


on October 31, 2022 09:30 PM

October 30, 2022

Here’s my (thirty-seventh) monthly but brief update about the activities I’ve done in the F/L/OSS world.


This was my 46th month of actively contributing to Debian. I became a DM in late March 2019 and a DD on Christmas ‘19! \o/

There’s a bunch of things I do, both, technical and non-technical. Here are the things I did this month:

Debian Uploads

  • ruby-espeak (1.1.0-1) - New upstream version, v1.1.0.

Other $things:

  • Being an AM for Arun Kumar, process #1024. Process completed. \o/
  • Sponsoring stuff for non-DDs.
  • Mentoring for newcomers.
  • Moderation of -project mailing list.


This was my 21st month of actively contributing to Ubuntu. Now that I joined Canonical to work on Ubuntu full-time, there’s a bunch of things I do! \o/

I mostly worked on different things, I guess.

I was too lazy to maintain a list of things I worked on so there’s no concrete list atm. Maybe I’ll get back to this section later or will start to list stuff from the fall, as I was doing before. :D

Debian (E)LTS

Debian Long Term Support (LTS) is a project to extend the lifetime of all Debian stable releases to (at least) 5 years. Debian LTS is not handled by the Debian security team, but by a separate group of volunteers and companies interested in making it a success.

And Debian Extended LTS (ELTS) is its sister project, extending support to the Jessie release (+2 years after LTS support).

This was my thirty-seventh month as a Debian LTS and twenty-eighth month as a Debian ELTS paid contributor.
I worked for 35.00 hours for LTS and 25.00 hours for ELTS.

LTS CVE Fixes and Announcements:

  • Issued DLA 3146-1, fixing CVE-2022-2928 and CVE-2022-2929, for isc-dhcp.
    For Debian 10 buster, these problems have been fixed in version 4.4.1-2+deb10u2.
  • Issued DLA 3165-1, fixing CVE-2022-43680, for expat.
    For Debian 10 buster, these problems have been fixed in version 2.2.6-2+deb10u6.
  • Issued DLA 3166-1, fixing CVE-2022-29970, for ruby-sinatra.
    For Debian 10 buster, these problems have been fixed in version 2.0.5-4+deb10u1.
  • Uploaded dropbear to fix CVE-2021-36369 in buster. Waiting for ELTS upload to issue the DLA. But will do soon now.
  • src:joblib is a bit painful - having to backport patches to Py2. :/
  • Started to look at other set of packages.

ELTS CVE Fixes and Announcements:

  • Issued ELA 715-1, fixing CVE-2022-43680, for expat.
    For Debian 9 stretch, these problems have been fixed in version 2.2.0-2+deb9u7.
    For Debian 8 jessie, these problems have been fixed in version 2.1.0-6+deb8u10.
  • Issued ELA 716-1, fixing CVE-2018-25045 and CVE-2020-25626, for djangorestframework.
    For Debian 9 stretch, these problems have been fixed in version 3.4.0-2+deb9u1.
  • Uploaded dropbear to fix CVE-2021-36369 in buster. Waiting for ELTS upload, too. But some backporting problems. :/
  • src:joblib is a bit painful - having to backport patches to Py2. :/
  • Started to look at other set of packages.

Other (E)LTS Work:

  • Triaged joblib, dropbear, ruby-sinatra, djangorestframework, isc-dhcp, and expat.
  • Reverted “Mark freerdp CVEs wrongly affecting freerdp <2.0.0” in the ELTS tracker.
  • Helped and assisted new contributors joining Freexian (LTS/ELTS).
  • Answered questions (& discussions) on IRC (#debian-lts and #debian-elts) and Matrix.
  • Participated and helped fellow members with their queries via private mail and chat.
  • General and other discussions on LTS private and public mailing list.
  • Attended the monthly meeting held on Jitsi on October 27th.

Until next time.
:wq for today.

on October 30, 2022 05:41 AM

October 29, 2022ötzensee/

One of the last warm September days, while it was raining and hailing in Neukölln, we enjoyed a late summer day and night in Strandbad Plötzensee and celebrated Fam’s birthday. I took over a dance-hungry crowd from Joe Carrera when we moved inside. It was a fantastic night - I couldn’t believe it had been 7 hours when I checked my watch as the place closed. Thanks everyone1 for this great event. 😍

  1. Dengue Dengue Dengue - Simiolo (Cumbia Cosmonauts Remix)
  2. Twerking Class Heroes - Hustlin´
  3. Kumbia Queers VS. Die Antword - Diz iz why im hot Remix
  4. Delaram Kamareh - Necessary Shiva (The Oddness Remix)
  5. Andi Otto ft. MD Pallavi - Six (Center Of The Universe Remix)
  6. Buraka Som Sistema - Sente
  7. Tropkillaz - Heartaches
  8. Tropkillaz - Dibre feat DKVPZ
  9. La Byle - Txê (Daniel Haaksman Remix)
  10. MC Ysa - Baile da Colômbia (Brega Funk) (Remix)
  11. Twerking Class Heroes - Vanakkam
  12. Andi Otto - Bangalore Whispers (feat. MD Pallavi)
  13. Romare - Love Song
  14. Sofi Tukker - Purple Hat
  15. Skip & Die - La Cumbia Dictadura
  16. Sukh Knight - Creation
  17. Notorious B.I.G. - Hypnotize (Benedikt Frey Edit)
  18. Nickodemus - Inmortales (Body Move) feat. Fémina (The Spy from Cairo Remix)
  19. A.Skillz - Everything to me
  20. Cabo Blanco - La Fiesta
  21. Bomba Estereo - Fuego (Maga Bo Remix)
  22. Foreigner - Cold As Ice (A.Skillz & Nick Thayer Remix - The Spank! Edit)
  23. Diplo - Express Yourself feat. Nicky da B (Chong X Cumbia Riddim refix)
  24. White Gangster - Italian Sound
  25. hubbabubbaklubb - Mopedbart (Barda Edit)
  26. Crussen - Bufarsveienen
  27. Daniël Leseman - Ease The Pain (Extended Mix)
  28. Johannes Klingebiel - Latewood
  29. Le Sale - (I’ve Had) The Time Of My Life (Le Sale’s Second Base Edit) [Dirty Dancing Remix]
  30. Quantic - You Used to Love Me feat. Denitia (Selva Remix)
  31. Mochakk - Ratata
  32. Dr. Dre - The Next Episode (We Are Nuts! Remix)
  33. Gene Farris & Kid Enigma - David Copperfield
  34. Pastor Leumund - Das Problem Mit Der Zeit feat. Bernadette La Hengst (MITTEKILL Remix)
  35. Moloko - Sing It Back (Mousse T.’s Feel Love Mix)
  36. Schlachthofbronx - Blurred Vision
  37. The Prodigy - Breathe (Zeds Dead Remix)
  38. Tropkillaz - Put It On Me (feat. Snappy Jit)
  39. Omar ؏ - Ku Ku
  40. Kalemba - Wegue Wegue (Krafty Kuts Remix)
  41. Omar ؏ - Dola Re Dola
  42. Yendry - KI-KI
  45. 808 Luke - Fluxo da Eve (MC GW, MC Dricka, MC MM)
  46. TroyBoi Feat Tropkillaz - CORNETA (DJ CHERNOBYL Baile Remix)
  47. MC’s Pett & Bobii (DJ Henrique de Ferraz & DJ Pufinho) - DÓ, RÉ, MI, FA O HENRIQUE SÓ LAMENTA
  48. Baja Frequencia - O Galop
  49. Beware + Motorpitch - Novinha Do Brazil feat. MC Iguinho
  50. The Living Graham Bond - Werk
  51. Mc Bin Laden - Bololo Haha (Uproot Andy Champeta Edit)
  52. SangoBeats - Me dê Amor
  53. Zeds Dead - Rumble In The Jungle
  54. Black Milk - Detroit’s New Dance Show
  55. Staff Benda Bilili - Bilanga (SKIP&DIE Remix)
  56. Lapo & Ago (Numa Crew) - Tuff!
  57. Yellow Claw - 4 In The Morning
  58. Toni Braxton - Unbreak My Dub (Jstar Refix)
  59. M.I.A - Bad Girls (Barbaric Merits ChainBangin Remix)
  60. Hamdi - Skanka
  61. MC Romântico - As Novinha Tão Sensacional (João Brasil Remix)
  62. Symbiz - Who Cares
  63. Natacha Atlas - Taalet (Radiohiro Remix)
  64. Rusko - Somebody To Love
  65. Chase & Status - Eastern Jam
  66. Sukh Knight - Ganja Dub
  67. The Prodigy - Smack My Bitch Up (Noisia Remix)
  68. Daniel Haaksman - Pau
  69. Yelle - A cause des garcons (Tepr Remix)
  70. Tiga - sunglasses at night (Popof remix 02)
  71. Vitalic - Poison Lips (extended)
  72. The Chemical Brothers - Go (Claude VonStroke Remix)
  73. nicholas ryan gant - Gypsy Woman (Kaytronik Remix Extended Version)
  74. Format B - Chunky
  75. Taisun - Senorita (Remix)
  76. Public Enem vs Benny Benassi - Bring the Noise (Pump-kin Remix)
  77. Josh Wink - Higher State of Concsciousness
  78. Fatboy Slim - Right Here, Right Now (CamelPhat Remix)
  79. Quantic - You Used to Love Me feat. Denitia (Selva Remix)
  80. Andri - Night Rider
  81. Mindchatter - Tough as nails
  82. Noir & Haze - Around (Solomon remix)
  83. Frankey & Sandrino - Acamar
  84. Lord Echo - Molten Lava (feat. Leila Adu)
  85. The Tribe Of Good - Heroes (edit)
  86. George Benson - Give Me The Night (X-Ray Tedit)
  87. Kriss Kross vs. Psycho Circus - Insane Jump
  88. White Gangster - Italian Sound
  89. Anita Baker - Ring My Bell (Kill Paris Remix)
  90. A.Skillz - Everything to me
  91. Fibre - I’ll Go Back
  92. WBBL - Boogie Nites (WBBL Remix)
  93. A Skillz - Poppa Soul
  94. Babe Ruth - The Mexican [X-Ray Tedit]
  95. Bruno Borlone - Wham! x Rick James x Daft Punk - Give Me The Funk (Bruno Borlone & Nacho Buscaglia Remix)
  96. TonyAdams - Estou Livre
  97. De La Soul - A Roller Skating Jam Named Saturdays (Superwash Remix)
  98. Opiuo & Vorso - Dusty Bugs
  99. Too Many T’s - The Bomb (prod. Odjbox)
  100. Psychemagik - Mink & Shoes feat Navid Izadi
  101. Dizharmonia - Yildirim (Kyrill & Redford Remix)
  102. Rey&Kjavik - Baba City (Rkadash Album Version)
  103. Yemanjo - Al Qamar Feat. Layeena & Ahmed Ragab
  104. Thornato - Chapinero
  105. Tropkillaz - Rayah (feat. Shantel)
  106. João Brasil - Nega Bass
  107. Tropkillaz + JSTJR - Lemme See
  108. Eminem - Without Me (Senior Citizen Remix)
  109. Born On Road - Aries, Fleck & Sheco ft. David Boomah - My Sound (Jstar Remix)
  110. Masia One - Warriors Tongue (An-ten-nae Remix)
  111. Acid Arab feat. Radia Menel - Staifia
  112. Disco Halal 2 - Hilbeh (Rabo and Snob Edit)
  113. 6th Borough Project - Do It To The Max
  114. Sampa the Great - Energy (The Oddness Rework)
  115. kerkayas - hakkı bulut ben köylüyüm (rework)
  116. Nicola Cruz - Bruxo (Von Party Remix)
  117. Urubu Marinka & Superbreak - That Loving Feeling (Dj Steef Edit)
  118. Whitney Houston - My Love Is Your Love (Steve Bonde Edit)
  119. coss - Come Into My Room
  120. Laraaji - All Of A Sudden (Klik & Frik Edit)
  121. Blick Bassy - Aké (Brynjard Edit)
  122. Chilled by Nature - Otherness (Black Mustang’s Frozen Moon Jam)
  123. Lukas Endhardt - Solo Tu

  1. Aside from the quite pushy outsiders who asked about every 5 minutes to have their songs played. 😬 I’ll credit some of the missed beats to them. 😂 ↩︎

on October 29, 2022 06:20 AM

October 27, 2022

To create a Kubernetes deployment, we must specify the matchLabels field, even though its value must match the one we specify in the template. But why? Cannot Kubernetes be smart enough to figure it out without us being explicit?

A deep dive in K8s deployment matchLabels field

Illustration by unDraw+.

Did you know? K8s is short for Kubernetes ‘cause there are 8 letters between K and S.

A Kubernetes (K8s) Deployment provides a way to define how many replicas of a Pod K8s should aim to keep alive. I’m especially bothered by the Deployment spec’s requirement that we must specify a label selector for pods, and that label selector must match the same labels we have defined in the template. Why can’t we just define them once? Why can’t K8s infer them on its own? As I will explain, there is actually a good reason. However, to understand it, you would have to go down a rabbit hole to figure it out.

A deployment specification

Firstly, let’s take a look at a simple deployment specification for K8s:

apiVersion: apps/v1
kind: Deployment
  name: nginx-deployment
  replicas: 3
      app: nginx # Why can't K8s figure it out on its own?
        app: nginx
      - name: nginx
        image: nginx:latest

This is a basic deployment, taken from the official documentation, and here we can already see that we need to fill the matchLabels field.

What happens if we drop the “selector” field completely?

➜ kubectl apply -f nginx-deployment.yaml
The Deployment "nginx-deployment" is invalid:
* spec.selector: Required value

Okay, so we need to specify a selector. Can it be different from the “label” field in the “template”? I will try with:

      app: nginx-different
➜ kubectl apply -f nginx-deployment.yaml
The Deployment "nginx-deployment" is invalid: spec.template.metadata.labels: Invalid value: map[string]string{"app":"nginx"}: `selector` does not match template `labels`

There are usually good reasons behind what it seems a not well-thought implementation, and this is true here as well, as we’ll see.

As expected, K8s doesn’t like it, it must match the template. So, we must fill a field with a well-defined value. It really seems that a computer could do that for us, why do we have to specify it manually? It drives me crazy having to do something a computer could do without any problem. Or could it?

Behind a deployment

Probably, you may never need to manipulate ReplicaSet objects: use a Deployment instead, and define your application in the spec section.

How does a deployment work? Behind the curtains, when you create a new deployment, K8s creates two different objects: a Pod definition, using as its specification what is available in the “template” field of the Deployment, and a ReplicaSet. You can easily verify this using kubectl to retrieve pods and replica sets after you have created a deployment.

A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time. As such, it is often used to guarantee the availability of a specified number of identical Pods.

A ReplicaSet needs a selector that specifies how to identify Pods it can acquire and manage: however, this doesn’t explain why we must specify it, and why K8s cannot do it on its own. In the end, a Deployment is a high-level construct that should hide ReplicaSet quirks: such details shouldn’t concern us, and the Deployment should take care of them on its own.

Digging deeper

Understanding how a Deployment works doesn’t help us find the reason of this particular behavior. Given that Googling doesn’t seem to bring any interesting result on this particular topic, it’s time to go to the source (literally): luckily, K8s is open source, so we can check its history on GitHub.

Going back in time, we find out that, actually, K8s used to infer it the matchLabels field! The behavior was removed with apps/v1beta2 (released with Kubernetes 1.8), through Pull Request #50164. Such pull request links to issue #50339, that, however, has a very brief description, and lacks the reasoning behind such a choice.

The linked issues are rich of technical details, and they have many comments. If you want to understand exactly how kubectl apply works, take a look!

Luckily, other issues provide way more context, as #26202: it turns out, the main problem with defaulting is when in subsequent updates to the resource, labels are mutated: the patch operation is somehow fickle, and apply breaks when you update a label that was used as default.

Many other concerns have been described by Brian Grant in deep in the issue #15894.

Basically, assuming a default value, creates many questions and concerns: what’s the difference between explicitly setting a label as null, and leaving it empty? How to manage all the cases where users left the default, and now they want to update the resource to manage themselves the label (or the other way around)?


Given that in K8s everything intend to be declarative, developers have chosen that explicit is better than implicit, especially for corner cases: specifying things explicitly allows a more robust validation on creation and update time, and remove some possible bugs that existed due to uncertainties caused by lack of clarity.

Shortly after dropping the defaulting behavior, developers also made the labels immutable, to make sure behaviors were well-defined. Maybe in the future labels will be mutable again, but to have that working, somebody needs to design a well-though document explaining how to manage all the possible edge cases that could happen when a controller is updated.

I hope you found this deep dive into the question interesting. I spent some time on it, since I was very curious, and I hope that the next person with the same question can find this article and get an answer quicker than what it took me.

If you have any question, or feedback, please leave a comment below, or write me an email at


on October 27, 2022 12:00 AM

October 26, 2022

Full Circle Weekly News #285

Full Circle Magazine

Release of Ardour 7.0:

Updating Void Linux installation builds:

Rhino Linux, a rolling distribution based on Ubuntu:

Release of Tails 5.5:

Release of the Open 3D Engine 22.10:

Release of ErgoFramework 2.2:

Release of Stratis 3.3:

Release of antiX 22:

Coreboot 4.18:

Release of Asterisk 20:

Release of Ubuntu 22.10:

Release of OpenBSD 7.2:

Full Circle Magazine
Host:, @bardictriad
Bumper: Canonical
Theme Music: From The Dust - Stardust
on October 26, 2022 05:49 PM

October 22, 2022

A simple, easy, fast and useful way to paste your clipboard content (text or image) into a file! Previously, you had to open editor, paste your clipboard, save file, close editor. Now, right click and choose the menu “Clipboard to file”! HOW DOES IT WORK? TEXT Copy a text into your clipboard. Go to your file browser and do a right click: Into empty area / “Clipboard to file” menu: Will create the file clipboard-X.
on October 22, 2022 08:29 AM

October 20, 2022

Xubuntu 22.10 Released

Xubuntu 22.10, "Kinetic Kudu," has been released! The antelope-inspired release packs the latest and greatest GNOME 43, MATE 1.26, and Xfce 4.17 packages. Some long-running issues have finally been addressed, making for a better overall experience over recent releases. I hope this new release makes using your computer more enjoyable.

Xubuntu 22.10 ReleasedThe kinetic Kudu, one of two species of antelope found in eastern and southern Africa. Photo by Henning Borgersen on Unsplash

Xfce 4.17

Xfce 4.17 is the development series for the upcoming Xfce 4.18, expected later this year. With a few exceptions, it doesn&apost introduce major new features or toolkit changes but instead refines the Xfce experience. Some notable updates are included below.

  • Catfish has had a round of appearance and usability updates. The new "Open with" context menu makes it easier to open your files. The Ctrl+A accelerator adds a useful select-all function.
  • Mousepad has added search history and automatic reloading of changed files.
  • Thunar now features a built-in, recursive file search. Catfish is still within reach for more advanced file lookups. Thunar also includes a new graphical shortcut editor and per-directory zoom levels.
  • Thunar Archive Plugin now allows zip file (including common document types odt, docx, and others) to be compressed.
  • The Application Finder has added support for the PrefersNonDefaultGPU property. This improves the launching of games and other apps that depend on more powerful graphics in a multi-GPU system.
  • The Desktop will now ask for confirmation before desktop icons are rearranged. Users can optionally disable the Delete context menu item.
  • Notifications now feature improved matching of application icons and names in the settings dialog. During the slideout animation, notifications will now be correctly positioned.
  • The Panel has added a new binary time mode and middle-click options for the tasklist plugin. Support for systray and status notifiers applets has been improved.
  • The panel&aposs PulseAudio Plugin will now display an indicator when any app is recording audio. Notifications are now displayed when the microphone volume level is adjusted.
  • Screenshooter includes a fix for capturing HiDPI windows. Screenshots can be easily opened in the file manager. And you can start over with the inclusion of a new back button.
  • Task Manager now has a right-click option to copy the full process command line to the clipboard.
  • The Terminal boasts improved scrolling, a new Fill background image style, and fixes for the unsafe paste dialog.


GNOME 43, "Guadalajara," features several usability enhancements, and more apps migrated to the new GTK4 toolkit. GTK4 enables building apps that have faster and smoother graphics with the addition of hardware acceleration. Some apps use the new libadwaita library that features a consistent look for GNOME apps, but one that does not fit in with the rest of the Xubuntu desktop theming. Nonetheless, the apps look good and deliver on the improved performance promises.

Of the GNOME apps included in Xubuntu 22.10, Disk Usage Analyzer (baobab), Font Viewer, and Software are now using GTK4 with libadwaita. Disk Utility and Sudoku have modest version bumps to the 43.x series. Rhythmbox is the standout application this time around, featuring an improved podcast downloader, network stream support, and Android/MTP device syncing.

MATE 1.26

MATE 1.26 has seen only modest updates since Xubuntu 22.04 this Spring. None of those updates extend to the Atril Document Viewer, Engrampa Archive Manager, or MATE Calculator. We still include the latest releases of each component.

Additional Updates

SGT Puzzles Collection

The latest update to Simon Tatham&aposs Portable Puzzle Collection includes the new grid-filling puzzle, Mosaic. I&aposd describe it as "Minesweeper, but find all the mines." It&aposs a fun challenge, so I recommend checking it out on Xubuntu or online.

Xubuntu 22.10 ReleasedMosaic, the new grid-filling puzzle from Simon Tatham.

Xubuntu Artwork

The new wallpaper for Xubuntu 22.10 features multi-colored transparent triangles overlaying a deep blue background. Small, glowing white bubbles float just above the rest of the image. You can get the full-quality version of the wallpaper on GitHub.

Xubuntu 22.10 ReleasedThe new wallpaper for Xubuntu 22.10.

Xubuntu Default Settings

We introduced a handful of small improvements to our settings this cycle.

  • The Noto fonts are now recommended instead of dependent packages. If you prefer another font, you can easily remove the Noto fonts from your system. (Launchpad #1891714)
  • The URL custom actions in Xfce Appfinder have been broken for a few releases. This has finally been addressed in 22.10. (Launchpad #1892651)
  • Swapping Caps Lock and Escape would result in the Super (Windows) key becoming a Caps Lock instead. This is now resolved. (Launchpad #1961506)
  • Xubuntu now includes default settings for the Picom compositor. Picom is the successor to the Compton compositor, which Xubuntu has included a configuration file for some time.

Xubuntu Metapackage

We didn&apost make any major updates to the packageset this cycle. But we did add a nice improvement. The Firefox transitional Debian package is now included again. This fixes a bug where the x-www-browser alias doesn&apost work with Snap packages, causing some issues loading a browser from Ubiquity, for example. You may have also noticed that the ISO manifest included the chromium package. This is also resolved. (Launchpad #1991470)

Get Xubuntu 22.10

Xubuntu 22.10 is available to download from the Xubuntu website. For installation instructions, please refer to the Xubuntu documentation.

If you&aposre using 22.04 and want to upgrade to 22.10, please check out our upgrade instructions on the Xubuntu Wiki.

on October 20, 2022 09:14 PM

The Ubuntu Studio team is pleased to announce the release of Ubuntu Studio 22.10, code-named “Kinetic Kudu”. This marks Ubuntu Studio’s 32nd release. This release is a regular release and as such, it is supported for 9 months (until July 2023).

Since it’s just out, you may experience some issues, so you might want to wait a bit before upgrading. Please see the release notes for a complete list of changes and known issues.

You can download Ubuntu Studio 22.10 from our download page.


Instructions for upgrading are included in the release notes.

New This Release

Ubuntu Studio Feature Uninstaller

Previous releases of Ubuntu Studio had a way to choose the features you wanted when you installed. Unfortunately, this had to be removed from the installer several releases ago. An often-requested item is a way to uninstall some of these features after installation since they might not integrate into your workflow.

A new addition to the Ubuntu Studio Installer package is the Ubuntu Studio Feature Uninstaller which performs the reverse of the Ubuntu Studio Installer: removes groups of packages from the Ubuntu Studio installation as long as they aren’t required by another group of packages. For example, if you have ubuntustudio-photography installed and ubuntustudio-graphics installed but wish to uninstall ubuntustudio-photography, you will still have gimp installed since it’s part of the ubuntustudio-graphics metapackage. This method of uninstallation is safe and effective at making your digital studio yours.

Audacity 3.2

Included with this release is the brand-new Audacity 3.2. Prior to this release, Audacity had been still on the Audacity 2.4 release. This is the first Ubuntu release to carry Audacity 3.x and we couldn’t be prouder.

Just a word of caution: Audacity 3.2 isn’t compatible with all of the audio plugins we carry, so there may be some errors when scanning, so keep that in mind.

Software for Live Performances and Houses of Worship

A major group of people that could benefit from Ubuntu Studio and its software is those who do live performances and those in houses of worship, such as Churches and Synagogues. As such, we have included, in addition to our vast audio suite, such software to enable houses of worship to create effective services.

For lighting, we have included Q Light Controller Plus to serve the needs of controlling house and stage lighting across multiple universes of light fixtures. Whether you have simple stage lighting or moving programmable RGB lights, QLC+ can handle it.

FreeShow’s Interface

For projection, in addition to LibreOffice Impress, we now have FreeShow, a presentation program to easily show text on a big screen, with support for stage display, remote control, media, and many more advanced features. It is geared toward houses of worship but can be used for many live performance lyric presentation applications. If FreeShow is inadequate or not featureful enough, OpenLP is also included.

Backports PPA

There are a few items planned for the Backports PPA once the next release cycle opens. We plan to keep the backports PPA up-to-date for the next six months until the release of 23.04, at which point you will be encouraged to upgrade.

Instructions for enabling the Ubuntu Studio Backports PPA

  • Automatic method:
    • Open Ubuntu Studio Installer
    • Click “Enable Backports”
  • Manual method:
    • sudo add-apt-repository ppa:ubuntustudio-ppa/backports
    • sudo apt upgrade

Plasma Backports

Since we share the Desktop Environment with Kubuntu, simply adding the Kubuntu Backports will help you with keeping the desktop environment and its components up-to-date with the latest versions:

  • sudo add-apt-repository ppa:kubuntu-ppa/backports
  • sudo apt upgrade

More Updates

There are many more updates not covered here but are mentioned in the Release Notes. We highly recommend reading those release notes so you know what has been updated and know any known issues that you may encounter.

Get Involved!

A wonderful way to contribute is to get involved with the project directly! We’re always looking for new volunteers to help with packaging, documentation, tutorials, user support, and MORE! Check out all the ways you can contribute!

Special Thanks

Huge special thanks for this release go to:

  • Len Ovens: Studio Controls, Ubuntu Studio Installer, Coding
  • Simon Quigley: Packaging, Ubuntu Core Developer
  • Eylul Dogruel: Artwork, Graphics Design
  • Ross Gammon: Upstream Debian Developer, Testing, Email Support
  • Sebastien Ramacher: Upstream Debian Developer
  • Dennis Braun: Debian Package Maintainer
  • Rik Mills: Kubuntu Council Member, help with Plasma desktop
  • Mauro Gaspari: Tutorials, Promotion, and Documentation, Testing
  • Aaron Rainbolt: Testing and bug reporting, IRC Support
  • Krytarik Raido: IRC Moderator, Mailing List Moderator
  • Erich Eickmeyer: Project Leader, Packaging, Direction, Treasurer

Frequently Asked Questions

Q: Does Ubuntu Studio contain snaps?
A: Yes. Mozilla’s distribution agreement with Canonical changed, and Ubuntu was forced to no longer distribute Firefox in a native .deb package. We have found that, after numerous improvements, Firefox now performs just as well as the native .deb package did.

Additionally, FreeShow is an Electron-based application. Electron-based applications cannot be packaged in the Ubuntu repositories in that they cannot be packaged in a traditional Debian source package. While such apps do have a build system to create a .deb binary package, it circumvents the source package build system which is required when packaging for Ubuntu. However, Electron apps also have a facility for creating snaps, which can be uploaded to the snap store. Therefore, for FreeShow to be included in Ubuntu Studio, it had to be packaged as a snap.

Q: Is PipeWire the main sound server like Ubuntu Desktop 22.10?
A: One of our goals this release was to create some kind of switch between our traditional PulseAudio/JACK setup and PipeWire, but this did not come to fruition as we had quite a few other bugs to squash as a result of the transition to ffmpeg 5. Additionally, we had a lot of clean-up after the transition to Python 3.10 in 22.04 LTS among other bugs. Sadly, that’s where our attention went and PipeWire support had to be deprioritized for this release.

Additionally, PipeWire does not support any JACK backends other than ALSA, so users who need NetJACK, FFADO for FireWire, or other backends would not be able to use PipeWire alone. Therefore, we need to develop an easy way to switch between the more traditional PulseAudio/JACK setup and PipeWire.

Q: Will you ever make an ISO image with {my favorite desktop environment}?
A: To do so would require creating an entirely new flavor of Ubuntu, which would require going through the Official Ubuntu Flavor application process. Since we’re completely volunteer-run, we don’t have the time or resources to do this. Instead, we recommend you download the official flavor for the desktop environment of your choice and use Ubuntu Studio Installer to get Ubuntu Studio. Please note that this process does not convert that flavor to Ubuntu Studio but adds its tools, features, and benefits to the existing flavor installation.

Q: What if I don’t want all these packages installed on my machine?
A: Simply use the Ubuntu Studio Feature Uninstaller to remove the features of Ubuntu Studio you don’t want or need!

on October 20, 2022 07:34 PM

The Kubuntu Team is happy to announce that Kubuntu 22.10 has been released, featuring the ‘beautiful’ KDE Plasma 5.25 simple by default, powerful when needed.

Codenamed “Kinetic Kudu”, Kubuntu 22.10 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.

Under the hood, there have been updates to many core packages, including a new 5.19-based kernel, KDE Frameworks 5.98, KDE Plasma 5.25 and KDE Gear 22.08.

KDE Plasma desktop 5.25 on Kubuntu 22.10 BetaKDE Plasma desktop 5.25 on Kubuntu 22.10

Kubuntu has seen many updates for other applications, both in our default install, and installable from the Ubuntu archive.

Krita, Kdevelop, Yakuake, and many many more applications are updated.

Applications for core day-to-day usage are included and updated, such as Firefox, VLC, and LibreOffice.

PipeWire also replaces PulseAudio as the default audio server.

For a list of other application updates, and known bugs be sure to read our release notes.

Download Kubuntu 22.10, or learn how to upgrade from 22.04.

Note: For upgrades from 22.04, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.

on October 20, 2022 06:58 PM

Ubuntu MATE 22.10 is a modest update by recent standards and focused on “quality of life improvements”. And there is good reason why this release of Ubuntu MATE doesn’t feature the usual bucket 🪣 list of changes you’d typically expect, and that’s because I’ve been helping bring the full Ubuntu MATE experience to Debian MATE 🧉

This may raise some questions for Ubuntu MATE users, so let’s try and address them:

  • I’m not stepping away from Ubuntu or Ubuntu MATE. I will continue to use and develop Ubuntu MATE 👍
  • I’ve closely collaborated with the MATE packaging team for Debian for over 8 years 👴
  • Making the MATE experience in Debian and Ubuntu consistent makes maintenance easier for all involved 🛠
  • Ubuntu MATE offers some modernisation of MATE via home-grown apps such as MATE Tweak and Ayatana Indicators. We want Debian users to benefit from those improvements too 💖
  • We’re hopeful the MATE spin in Debian 12 will offer the same (or extremely similar) experience Ubuntu MATE users have enjoyed for some time 🎁

Thank you! 🙇

I’d like to extend my sincere thanks to everyone who has played an active role in improving Ubuntu MATE for this release 👏 From reporting bugs, submitting translations, providing patches, contributing to our crowd funding, developing new features, creating artwork, offering community support, actively testing and providing QA feedback to writing documentation or creating this fabulous website. Thank you! Thank you all for getting out there and making a difference! 💚

Ubuntu MATE 22.10 Ubuntu MATE 22.10 using the Pantheon layout and new centered panel applets and HUD

What changed since the Ubuntu MATE 22.04?

Here are the highlights of what’s changed since the release of Ubuntu MATE 22.04

MATE Desktop

The usual point release updates to MATE Desktop and Ayatana Indicators have been included that fix 🩹 an assortment on minor bugs 🐛 The main change in MATE Desktop is to MATE Panel, where we’ve included an early snapshot release of mate-panel 1.27.0 along with a patch set that adds centre alignment of panel applets.

This much requested feature comes from Ubuntu MATE community contributor Gordon N. Squash 🇺🇸 and allows panel applets to be centre aligned, as well as the usual left and right alignment. I’m sure you’ll all join me in thanking 🙇 Gordon for working on this feature.

Centre aligning of applet icons will ship with MATE Desktop 1.28, but we’re including it early 🐓 for Ubuntu MATE users. We’ve updated MATE Tweak to correctly save/restore custom layouts that use centre aligned applets and all the panel layouts shipped with Ubuntu MATE 22.10 have been updated so they’re compatible with center alignment of applets ✅

AI Generated wallpapers (again!)

My friend Simon Butcher 🇬🇧 is Head of Research Platforms at Queen Mary University of London managing the Apocrita HPC cluster service. Once again, Simon has created some stunning AI generated 🤖🧠 wallpapers for Ubuntu MATE using bleeding edge diffusion models 🖌 The samples below are 1920x1080 but the versions include in Ubuntu MATE 22.10 are 3840x2160.

Here’s what Simon has to say about about some of the challenges he faced creating these new wallpapers for Kinetic Kudu:

AI image generation is continuing to improve at a mind-boggling rate. Yet, until recently, coherent human faces, hands and anatomically correct animals have proved rather tricky. Fortunately human faces are getting particular attention in the open source community after the release of Stable Diffusion. However, while an anthropomorphic portrait of a Kudu wearing a rather dapper suit will be stylishly rendered, getting consistent results for kudu in their natural habitat proved particularly tricky, exacerbated by their elegant horn structure. Often you will get rather wild interpretations of the horns, 5 legged creatures, or nightmarish output akin to the Pushmi-Pullyu from the Dr Doolittle stories.

Jellyfish, on the other hand, are a mass of tentacles and perhaps benefit aesthetically from the randomness induced by AI-generated images, in the same way that forests, mountains and hobbit villages generated by AI can be produced en-masse to a very satisfying extent. So while 1000 stunning unique images of jellyfish can be produced in a few minutes with a powerful GPU, the kudu was quite a challenge, and I had to experiment a lot with various prompts and styles, and a lot of cherry-picking - throwing away about 99% of the results that weren’t quite right. For the next release, I’m hoping we’ll see further AI innovation in time for the next release, or…maybe the next code name will be a lionfish?


PulseAudio has been replaced with PipeWire and Bluetooth audio codec support has been expanded with the addition of AAC, LDAC, aptX and aptX HD.

As a podcaster and streamer I’m delighted to have PipeWire installed by default in Ubuntu MATE 22.10. The migration to PipeWire has resolved some longstanding minor annoyances I’ve had with audio in that past and all the tools 🧰 I use for audio and video production continue to function correctly.

PipeWire on Ubuntu MATE 22.04

If you like to ride the LTS train 🚆 but want to use PipeWire in Ubuntu MATE 22.04 (as I have been doing for some months) then this is how to make the change:

sudo apt-get install gstreamer1.0-pipewire pipewire-audio-client-libraries wireplumber
sudo apt-get remove pulseaudio-module-bluetooth
sudo apt-get install libfdk-aac2 libldacbt-abr2 libldacbt-enc2 libopenaptx0 libspa-0.2-bluetooth libspa-0.2-jack

Once the installs/removals are complete restart your computer.

Ubuntu MATE Stuff

The “MATE HUD” has seen some significant work from community contributor twa022 🌎. The HUD now supports MATE, XFCE and Budgie, has improved accuracy for HUD placement (taking into account various panel offsets/struts), is highly configurable and includes a new HUD settings app

HUD Settings HUD Settings

MATE User Manager

A new utility, User Manager, has been added to complement the suite of MATE tools. User Manager replaces the aging gnome-system-tools which was removed from Ubuntu MATE in the 22.04 release and allows you to add/modify/remove user accounts. It also includes the ability to define which users are Administrators, enable/disable auto-login, set profile images and manage group memberships.

MATE User Manager MATE User Manager


And last but not least, the Ubuntu MATE Artwork package has been updated to include all the refinements and improvements in the suite of Yaru themes 🎨

Major Applications

Accompanying MATE Desktop 1.26.1 🧉 and Linux 5.19 🐧 are Firefox 105 🔥🦊, Celluloid 0.20 🎥, Evolution 3.46 📧, LibreOffice 7.4 📚

See the Ubuntu 22.10 Release Notes for details of all the changes and improvements that Ubuntu MATE benefits from.

Download Ubuntu MATE 22.10

This new release will be first available for PC/Mac users.


Upgrading from Ubuntu MATE 22.04

You can upgrade to Ubuntu MATE 22.10 from Ubuntu MATE 22.04. Ensure that you have all updates installed for your current version of Ubuntu MATE before you upgrade.

  • Open the “Software & Updates” from the Control Center.
  • Select the 3rd Tab called “Updates”.
  • Set the “Notify me of a new Ubuntu version” drop down menu to “For any new version”.
  • Press Alt+F2 and type in update-manager -c -d into the command box.
  • Update Manager should open up and tell you: New distribution release ‘22.10’ is available.
    • If not, you can use /usr/lib/ubuntu-release-upgrader/check-new-release-gtk
  • Click “Upgrade” and follow the on-screen instructions.

There are no offline upgrade options for Ubuntu MATE. Please ensure you have network connectivity to one of the official mirrors or to a locally accessible mirror and follow the instructions above.

Known Issues

Here are the known issues.

Component Problem Workarounds Upstream Links
Ubuntu Ubiquity slide shows are missing for OEM installs of Ubuntu MATE


Is there anything you can help with or want to be involved in? Maybe you just want to discuss your experiences or ask the maintainers some questions. Please come and talk to us.

on October 20, 2022 05:46 PM

The Xubuntu team is happy to announce the immediate release of Xubuntu 22.10.

Xubuntu 22.10, codenamed Kinetic Kudu, is a regular release and will be supported for 9 months, until July 2023.

Xubuntu 22.10, featuring the latest updates from Xfce 4.17, GNOME 43, and MATE 1.26.

Xubuntu 22.10 features the latest updates from Xfce 4.17, GNOME 43, and MATE 1.26. The “bleeding edge” Xfce 4.17 components are included as an early preview to the upcoming Xfce 4.18, expected later this year. You’ll find that Xfce 4.17 includes many new features and usability improvements while using Xubuntu 22.10. While we’ve tested each component shipped in Xubuntu, new bugs and regressions are expected. Please be sure to report any bugs you find.

The final release images are available as torrents and direct downloads from

As the main server might be busy in the first few days after the release, we recommend using the torrents if possible.

Xubuntu Core, our minimal ISO edition, is available to download from [torrent]. Find out more about Xubuntu Core here.

We’d like to thank everybody who contributed to this release of Xubuntu!

Highlights and Known Issues


  • Mousepad 0.5.10, our text editor, introduces search history and automatic reloading of files modified externally.
  • Thunar 4.17.9, the Xfce file manager, now includes built-in, recursive file search. If you need more advanced search parameters, Catfish is a click away.
  • Xfce PulseAudio Plugin 0.4.5 now displays an indicator when an application is recording audio. The microphone icon is displayed next to the existing audio level icon.

Known Issues

  • The shutdown prompt may not be displayed at the end of the installation. Instead you might just see a Xubuntu logo, a black screen with an underscore in the upper left hand corner, or just a black screen. Press Enter and the system will reboot into the installed environment. (LP: #1944519)

For more obscure known issues, information on affecting bugs, bug fixes, and a list of new package versions, please refer to the Xubuntu Release Notes.

The main Ubuntu Release Notes cover many of the other packages we carry and more generic issues.


For support with the release, navigate to Help & Support for a complete list of methods to get help.

on October 20, 2022 04:53 PM

October 18, 2022

Don’t Read Off The Screen

Stuart Langridge

Hear this talk performed (with appropriate background music):

Friends and enemies, attendees of Tech Mids 2022.

Don’t read off the screen.

If I could offer you only one piece of advice for why and how you should speak in public, don’t read off the screen would be it. Reading your slides out is guaranteed to make your talk boring, whereas the rest of my advice has no basis in fact other than my own experience, and the million great people who gave me thoughts on Twitter.

I shall dispense this advice… now.

Every meetup in every town is crying out for speakers, and your voice is valuable. Tell people your story. The way you see things is unique, just like everybody else.

Everybody gets nervous about speaking sometimes. Anybody claiming that they don’t is either lying, or trying to sell you something. If you’re nervous, consider that its a mark of wanting to do a good job.

Don’t start by planning what you want to say. Plan what you want people to hear. Then work backwards from there to find out what to say to make that happen.

You can do this. The audience are on your side.

Find your own style. Take bits and pieces from others and make them something of your own.

Slow down. Breathe. You’re going faster than it feels like you are.

Pee beforehand. If you have a trouser fly, check it.

If someone tells you why you should speak, take their words with a pinch of salt, me included. If they tell you how to speak, take two pinches. But small tips are born of someone else’s bad experience. When they say to use a lapel mic, or drink water, or to have a backup, then listen; they had their bad day so that you didn’t have to.

Don’t put up with rambling opinions from questioners. If they have a comment rather than a question, then they should have applied to do a talk themselves. You were asked to be here. Be proud of that.

Practice. And then practice again, and again. If you think you’ve rehearsed enough, you haven’t.

Speak inclusively, so that none of your audience feels that the talk wasn’t for them.

Making things look unrehearsed takes a lot of rehearsal.

Some people script their talks, some people don’t. Whether you prefer bullet points or a soliloquy is up to you. Whichever you choose, remember: don’t just read out your notes. Your talk is a performance, not a recital.

Nobody knows if you make a mistake. Carry on, and correct it when you can. But keep things simple. Someone drowning in information finds it hard to listen.

Live demos anger the gods of speaking. If you can avoid a live demo, do so. Record it in advance, or prep it so that it looks live. Nobody minds at all.

Don’t do a talk only once.

Acting can be useful, if that’s the style you like. Improv classes, stage presence, how you stand and what you do with your hands, all of this can be taught. But put your shoulders back and you’ve got about half of it.

Carry your own HDMI adapter and have a backup copy of your talk. Your technology will betray you if it gets a chance.

Record your practices and watch yourself back. It can be a humbling experience, but you are your own best teacher, if you’re willing to listen.

Try to have a star moment: something that people will remember about what you said and the way you said it. Whether that’s a surprising truth or an excellent joke or a weird gimmick, your goal is to have people walk away remembering what you said. Help them to do that.

Now, go do talks. I’m Stuart Langridge, and you aren’t. So do your talk, your way.

But trust me: don’t read off the screen.

on October 18, 2022 09:11 AM

October 17, 2022

I first installed Ubuntu when Ubuntu 6.06 LTS “Dapper Drake” was released. I was brand new to Linux. This was Ubuntu’s first LTS release; the very first release of Ubuntu was only a year and a half before. I was impressed by how usable and useful the system was. It soon became my primary home operating system and I wanted to help make it better.

On October 15, 2009, I was helping test the release candidates ISOs for the Ubuntu 9.10 release. Specifically, I tested Edubuntu. Edubuntu has since been discontinued but at the time it was an official Ubuntu flavor preloaded with lots of education apps. One of those education apps was Moodle, an e-learning platform.

When testing Moodle, I found that a default installation would make Moodle impossible to use locally. I figured out how to fix this issue. This was really exciting: I finally found an Ubuntu bug I knew how to fix. I filed the bug report.

This was very late in the Ubuntu 9.10 release process and Ubuntu was in the Final Freeze state. In Final Freeze, every upload to packages included in the default install need to be individually approved by a member of the Ubuntu Release Team. Also, I didn’t have upload rights to Ubuntu. Jordan Mantha (LaserJock), an Edubuntu maintainer, sponsored my bug fix upload.

I also forwarded my patch to Debian.

While trying to figure out what wasn’t working with Moodle, I stumbled across a packaging bug. Edubuntu provided a choice of MySQL or PostgreSQL for the system default database. MySQL was the default, but if PostgreSQL were chosen instead, Moodle wouldn’t work. I figured out how to fix this bug too a week later. Jordan sponsored this upload and Steve Langasek from the Release Team approved it so it also was able to be fixed before 9.10 was released.

Although the first bug was new to 9.10 because of a behavior change in a low-level dependency, this PostgreSQL bug existed in stable Ubuntu releases. Therefore, I prepared Stable Release Updates for Ubuntu 9.04 and Ubuntu 8.04 LTS.


Six months later, I was able to attend my first Ubuntu Developer Summit. I was living in Bahrain (in the Middle East) at the time and a trip to Belgium seemed easier to me than if I were living in the United States where I usually live. This was the Ubuntu Developer Summit where planning for Ubuntu 10.10 took place. I like to believe that I helped with the naming since I added Maverick to the wiki page where people contribute suggestions.

I did not apply for financial sponsorship to attend and I stayed in a budget hotel on the other side of Brussels. The event venue was on the outskirts of Brussels so there wasn’t a direct bus or metro line to get there. I rented a car. I didn’t yet have a smartphone and I had a LOT of trouble navigating to and from the site every day. I learned then that it’s best to stay close to the conference site since a lot of the event is actually in the unstructured time in the evenings. Fortunately, I managed to arrive in time for Mark Shuttleworth’s keynote where the Unity desktop was first announced. This was released in Ubuntu 10.10 in the Ubuntu Netbook Remix and became the default for Ubuntu Desktop in Ubuntu 11.04.

Ubuntu’s switch to Unity provided me with a huge opportunity. In April 2011, GNOME 3.0 was released. I wanted to try it but it wasn’t yet packaged in Ubuntu or Debian. It was suggested that I could help work on packaging the major new version in a PPA. The PPA was convenient because I was able to get permission to upload there easier than being able to upload directly to Ubuntu. My contributions there then enabled me to get upload rights to the Ubuntu Desktop packages later that year.

At a later Ubuntu Developer Summit, it was suggested that I start an official Ubuntu flavor for GNOME. So along with Tim Lunn (darkxst), I co-founded Ubuntu GNOME. Years later, Canonical stopped actively developing Unity; instead, Ubuntu GNOME was merged into Ubuntu Desktop.

Along the way, I became an Ubuntu Core Developer and a Debian Developer. And in January 2022, I joined Canonical on the Desktop Team. This all still feels amazing to me. It took me a long time to be comfortable calling myself a developer!


My first Ubuntu bugfix was 13 years ago this week. Because Ubuntu historically uses alphabetical adjective animal release names, 13 years means that we have rolled around to the letter K again! Later today, we begin release candidate ISO testing for Ubuntu 22.10 “Kinetic Kudu”.

I encourage you to help us test the release candidates and report bugs that you find. If you figure out how to fix a bug, we still sponsor bug fixes. If you are an Ubuntu contributor, I highly encourage you to attend an Ubuntu Summit if you can. The first Ubuntu Summit in years will be in 3 weeks in Prague, but the intent is for the Ubuntu Summits to be recurring events again.

on October 17, 2022 01:54 PM

October 16, 2022

I’ve released man-db 2.11.0 (announcement, NEWS), and uploaded it to Debian unstable.

The biggest chunk of work here was fixing some extremely long-standing issues with how the database is built. Despite being in the package name, man-db’s database is much less important than it used to be: most uses of man(1) haven’t required it in a long time, and both hardware and software improvements mean that even some searches can be done by brute force without needing prior indexing. However, the database is still needed for the whatis(1) and apropos(1) commands.

The database has a simple format - no relational structure here, it’s just a simple key-value database using old-fashioned DBM-like interfaces and composing a few fields to form values - but there are a number of subtleties involved. The issues tend to amount to this: what does a manual page name mean? At first glance it might seem simple, because you have file names that look something like /usr/share/man/man1/ls.1.gz and that’s obviously ls(1). Some pages are symlinks to other pages (which we track separately because it makes it easier to figure out which entries to update when the contents of the file system change), and sometimes multiple pages are even hard links to the same file.

The real complications come with “whatis references”. Pages can list a bunch of names in their NAME section, and the historical expectation is that it should be possible to use those names as arguments to man(1) even if they don’t also appear in the file system (although Debian policy has deprecated relying on this for some time). Not only does that mean that man(1) sometimes needs to consult the database, but it also means that the database is inherently more complicated, since a page might list something in its NAME section that conflicts with an actual file name in the file system, and now you need a priority system to resolve ambiguities. There are some other possible causes of ambiguity as well.

The people working on reproducible builds in Debian branched out to the related challenge of reproducible installations some time ago: can you take a collection of packages, bootstrap a file system image from them, and reproduce that exact same image somewhere else? This is useful for the same sorts of reasons that reproducible builds are useful: it lets you verify that an image is built from the components it’s supposed to be built from, and doesn’t contain any other skulduggery by accident or design. One of the people working on this noticed that man-db’s database files were an obstacle to that: in particular, the exact contents of the database seemed to depend on the order in which files were scanned when building it. The reporter proposed solving this by processing files in sorted order, but I wasn’t keen on that approach: firstly because it would mean we could no longer process files in an order that makes it more efficient to read them all from disk (still valuable on rotational disks), but mostly because the differences seemed to point to other bugs.

Having understood this, there then followed several late nights of very fiddly work on the details of how the database is maintained. None of this was conceptually difficult: it mainly amounted to ensuring that we maintain a consistent well-order for different entries that we might want to insert for a given database key, and that we consider the same names for insertion regardless of the order in which we encounter files. As usual, the tricky bit is making sure that we have the right data structures to support this. man-db is written in C which is not very well-supplied with built-in data structures, and originally much of the code was written in a style that tried to minimize memory allocations; this came at the cost of ownership and lifetime often being rather unclear, and it was often difficult to make changes without causing leaks or double-frees. Over the years I’ve been gradually introducing better encapsulation to make things easier to follow, and I had to do another round of that here. There were also some problems with caching being done at slightly the wrong layer: we need to make use of a “trace” of the chain of links followed to resolve a page to its ultimate source file, but we were incorrectly caching that trace and reusing it for any link to the same file, with incorrect results in many cases.

Oh, and after doing all that I found that the on-disk representation of a GDBM database is insertion-order-dependent, so I ended up having to manually reorganize the database at the end by reading it all in and writing it all back out in sorted order, which feels really weird to me coming from spending most of my time with PostgreSQL these days. Fortunately the database is small so this takes negligible time.

None of this is particularly glamorous work, but it paid off:

# export SOURCE_DATE_EPOCH="$(date +%s)"
# mkdir emptydir disorder
# disorderfs --multi-user=yes --shuffle-dirents=yes --reverse-dirents=no emptydir disorder
# export TMPDIR="$(pwd)/disorder"
# mmdebstrap --variant=standard --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr \
      unstable out1.tar
# mmdebstrap --variant=standard --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr \
      unstable out2.tar
# cmp out1.tar out2.tar
# echo $?
on October 16, 2022 03:54 PM

October 13, 2022

KDE is now evaluating Sentry, a crash tracking system.

Who can get access? Everyone with a KDE developer account.

But what is it?

Since forever we have used Bugzilla to manage crash reports but this has numerous challenges that haven’t made any improvements in at least 10 years:

  • Finding duplicates crashes is hard and in our case involves a human finding them
  • When debug symbols are missing we need to ask the user to recreate the problem, which is not always possible
  • Users need to worry about debug symbols (this is in part improved by the rise of debuginfod – yay!)
  • We have no easily consumed graphs on how prevalent a specific crash is, and by extension we have a hard time judging the importance
  • The user needs to actually write a report for us to learn of the crash (spoiler: most crashes never get this far)

All in all it’s a fairly dissatisfactory situation we are in currently. Enter Sentry.

Sentry is a purpose-built crash tracking system. It receives crash reports via API ingestion points and traces missing frames with the help of debuginfod, can detect duplicates automatically and thus show us particularly aggressive crashes, and much more. Best yet, it supports many different programming languages which allows us to not only improve the quality of our software but also our infrastructure services.

The current evaluation instance is already amazing and helped fix numerous problems, and the current setup is not even using all features yet and we have hampered rollout a bit: only git builds currently submit data. If all goes well and we find it to be amazing I hope we’ll eventually be able to roll this out to production releases.

Let’s look at a crash I’ve fixed recently.

Here’s what Sentry received from the user:

Not terribly useful. So with the power of debuginfod it turned it into this:

I then applied some brain power to create a fix and consequently the crash has disappeared, as we can see in this neat graphic here:

Here’s a complete crash information page from a recent infrastructure problem in our bugzilla bot:

Also check out my Akademy talk:

on October 13, 2022 10:31 AM

October 06, 2022

Akademy 2022 the BoFs

Jonathan Riddell

Geeks on a mountain

After two days of talks we have moved to a week of BoF sessions. (I’m not a fan of the term BoF but I’ve never managed to think of anything better.) Here’s some notes I made incase anyone is interested.

The big news is the Frameworks 6 session had some Plasma people there too and voila we have a plan for 6. Most Frameworks and even most Plasma is already working with Qt 6. So the last Frameworks 5 release is due in December and then work will happen to finalise the porting to Frameworks 6 and once that’s solid releases will start again using Qt 6. And for Plasma we’ll make a final Plasma 5 release at the start of next year versioned 5.27. That will be LTS so we’ll stop the 5.24 LTS releases and make further 5.27 releases as long as they are useful. The finalising of the porting to Qt 6 will start in January and we’ll schedule a release whenever that becomes practicle which should be not too far into 2023.

Our BoF sessions are Covid secure

We had a session with App Stores looking at what are the most popular products and what methods are there to make money. My notes say we discussed charging some money on the Windows store for say Okular and monitor how well that goes down. There’s also ideas of bundling games together. Monitoring could be implemented with KUserFeedback. KStars could be worth asking money for but that’s already on the MS store for free. Automatic testing would be very useful for app deployment, possibly with OpenQA or other tech. I asked for help with packaging Kontact and Akonadi in Snaps (Flatpaks need it too).

Chillaxing between sessions

The translations, which have always been kept separate in KDE codebase, are now copied nightly into master by the Scripty script. This should make it easier to make tars although releaseme will continue to copy over the latest translations when run. Some apps need CMake updated for this change. Most importantly this means KTuberling can compile in KDE neon for the first time years.

Speaking of KDE neon, we had a KDE neon session. Nate suggested the idea of making a specification that could be applies to brand any distro spin which would require it to ship up to date KDE software, apply recommended patches prompty, use KDE’s Qt branches, use recommended software suite, not change wallpapers etc. We decided that using the neon branch for this was not the way to go but it could be e.g. a Plasma Distro Experience certified brand. Needs someone to make the spec and the test suite.

Back to neon proper we discussed the rebase on ubuntu 22.04 which is almost nearly ready and David Redondo was good enough to do a live upgrade in the BoF but it broke in various ways so I guess some more fixes needed here. The problems of invent gitlab rejecting our server for Git requests was dicussed, it’s the main thing that drags neon releases when we are slow, more debugging is needed. We pondered added RiscV and concluded “do it”. Moving our infrastructure into invent is still blocking on a service which orders the builds. kdeedu-data builds are still broken (because translations are funny here) and Albert has said he’ll write the code for this.

On Wednesday we had a nice hike up the mountain of Montserrat and then an even longer hike downwards.

KDE went up a mountain

On Thursday David Faure gave us a training on debugging and profiling as sponsored by KDAB. He took us through using strace. rr is for record and replay which lets gdb do a reverse run which is useful for non-deterministic tests that randomly fail. And for gdb he recommends using cgdb the ncurses frontend for it. He took us through gammaway which lets you see lots of interesting Qt goings on such as which signals and slots get run, which settings are set in widgets etc etc. radardoc is a good debugging tool for graphics calls. And he took us through compiler sanitizers which get more debug tooling into gcc and clang and works similar to Valgrid but with some different properties.

Later on we went for pizza on the beach.

My Photo Album

on October 06, 2022 12:19 PM

October 01, 2022

Xubuntu 22.10 Beta

Xubuntu Development Update October 2022

Xubuntu 22.10 "Kinetic Kudu" Beta (download, release notes) was released on Thursday, September 29. It features the latest updates from Xfce 4.17, GNOME 43, and MATE 1.26. Xfce 4.17, the development series for the upcoming Xfce 4.18 release, includes a massive number of improvements and new features. Many of our GNOME 43 components are now using GTK4 and libadwaita. MATE 1.26 is still the same as in Xubuntu 22.04.

Xubuntu Development Update October 2022On the surface, little has changed in Xubuntu 22.10. Go deeper, however, and you&aposll find that almost every app and component has meaningful updates and improvements.

For those wondering, the Xubuntu 22.10 wallpaper is still in development, with an update expected early in October.

22.10 September Package Updates

As we move toward the October release of Xubuntu 22.10, package updates are slowing down. Nevertheless, there were still a few notable updates.  

xubuntu-artwork (22.10)

The 22.10 update of xubuntu-artwork restored the missing Xubuntu Light and Dark (LP: #1986935) editor themes. These themes were lost with Mousepad&aposs update to GtkSourceView 4. With the updated xubuntu-artwork package, these themes are once again available for any standard GTK text editor, including Gedit, Pluma, and others.

xubuntu-default-settings (22.10.1)

xubuntu-default-settings versions 22.10 and 22.10.1 include a handful of improvements. Support has been added for picom, an alternative compositor for X and fork of the popular compton. The Noto fonts can now be removed without uninstalling xubuntu-default-settings (LP: #1891714). Additionally, URL handling in xfce4-appfinder has been fixed (LP: #1892651).

xfce4-notifyd (0.6.4-1ubuntu1)

xfce4-notifyd 0.6.4 features a range of bug fixes and usability improvements. Improved application icon and name matching make it easier to manage your notifications. Notification positions are now correctly reset during slideout. Xubuntu also includes an upstream patch to fix a segfault under certain conditions (!30).

xfce4-pulseaudio-plugin (0.4.5-0ubuntu1)

The latest version of xfce4-pulseaudio-plugin, 0.4.5, further refines audio support in Xubuntu. The recording indicator will now flicker less frequently and no longer be shown while making changes in pavucontrol. Notifications will now be displayed for microphone volume changes and when volume levels are at min/max values. Finally, menu positioning when the panel is set to auto-hide has been fixed.

GitHub Issues

In September, I continued expanding our GitHub issue trackers. Issues reported on Launchpad are synced to GitHub daily. With the improvements made this month, comments and issue statuses are also synced. It&aposs now easier than ever to find, review, and collaborate on issues. New contributors can easily find something to work on.

Xubuntu Development Update October 2022Issues, comments, and status updates are now all synced from Launchpad.

These updates apply to Xubuntu&aposs own projects:

Shared projects have also been updated with the expanded issue sync and status tracking:

Ready to contribute?

Join us in making Xubuntu one of the best desktop Linux experiences around. If you&aposre looing for ways to get involved, check out the Get Involved page on the Xubuntu website.

If you appreciate these development updates, consider sponsoring my work on GitHub Sponsors, Patreon, or Ko-Fi. Pick your method or support one of the upstream projects on Donate page.

Thanks for reading!

on October 01, 2022 01:08 AM

September 30, 2022

KDE Plasma desktop 5.25 on Kubuntu 22.10 BetaKDE Plasma desktop 5.25 on Kubuntu 22.10 Beta

The beta of Kubuntu Kinetic Kudu (to become 22.10 in October) has now been released, and is available for download.

This milestone features images for Kubuntu and other Ubuntu flavours.

Pre-releases of Kubuntu Kinetic Kudu are not recommended for:

  • Anyone needing a stable system
  • Regular users who are not aware of pre-release issues
  • Anyone in a production environment with data or workflows that need to be reliable

They are, however, recommended for:

  • Regular users who want to help us test by finding, reporting, and/or fixing bugs
  • Kubuntu, KDE, and Qt developers
  • Other Ubuntu flavour developers

The Beta includes some software updates that are ready for broader testing. However, it is an early set of images, so you should expect some bugs.

We STRONGLY advise testers to read the Kubuntu 22.10 Beta release notes before installing, and in particular the section on ‘Known issues‘.

Kubuntu is taking part in ‘Ubuntu Testing Week’ from September 29th to October 6th. Details for all flavours are available on the Ubuntu Discourse announcement.

You can also find more information about the entire 22.10 release (base, kernel, graphics etc) in the main Ubuntu Beta release notes and announcement.

on September 30, 2022 03:42 PM

Here’s my (thirty-sixth) monthly but brief update about the activities I’ve done in the F/L/OSS world.


This was my 45th month of actively contributing to Debian. I became a DM in late March 2019 and a DD on Christmas ‘19! \o/

There’s a bunch of things I do, both, technical and non-technical. Here are the things I did this month:

Debian Uploads

  • rails (2: - Add patch to allow Symbols in YAML columns, fixes #1018934.
  • rails (2: - Add patch to remove active_record.yaml initializers.
  • rails (2: - Add patch to allow Date, Time, ActiveSupport::HashWithIndifferentAccess in YAML columns.
  • ruby-arbre (1.4.0-2) - Add patch to use selector to detect authenticity token input.
  • ruby-net-http-digest-auth (1.4.1-1) - New upstream version, v1.4.1 to fix the FTBFS w/ rails.
  • rails (2:6.1.7+dfsg-1) - New upstream version, v6.1.7+dfsg.
  • redmine (5.0.2-1) - New upstream version, v5.0.2 + fixes for #1017525, #1019607, #1019238, and #1014813.
  • redmine (5.0.2-2) - Add patch to relax pg’s version for autopkgtest.
  • ruby-json-jwt (1.14.0-2) - No-change rebuild for unstable to fix #1011682.
  • libexporter-tiny-perl (1.004002-1) - New upstream version, v1.004002.

Other $things:

  • Sponsored php-nikic-fast-route/1.3.0-4~bpo11+1 for William.
  • Being an AM for Arun Kumar, process #1024.
  • Sponsoring stuff for non-DDs.
  • Mentoring for newcomers.
  • Moderation of -project mailing list.


This was my 20th month of actively contributing to Ubuntu. Now that I joined Canonical to work on Ubuntu full-time, there’s a bunch of things I do! \o/

I mostly worked on different things, I guess.

I was too lazy to maintain a list of things I worked on so there’s no concrete list atm. Maybe I’ll get back to this section later or will start to list stuff from the fall, as I was doing before. :D

Debian (E)LTS

Debian Long Term Support (LTS) is a project to extend the lifetime of all Debian stable releases to (at least) 5 years. Debian LTS is not handled by the Debian security team, but by a separate group of volunteers and companies interested in making it a success.

And Debian Extended LTS (ELTS) is its sister project, extending support to the Jessie release (+2 years after LTS support).

This was my thirty-sixth month as a Debian LTS and twenty-seventh month as a Debian ELTS paid contributor.
I worked for 38.00 hours for LTS and 27.00 hours for ELTS.

LTS CVE Fixes and Announcements:

  • Rolled out announcement for src:flac.
  • Rolled out announcement for src:ruby-rack.
  • Issued DLA 3128-1, fixing CVE-2020-7677, for node-thenify.
    For Debian 10 buster, these problems have been fixed in version 3.3.0-1+deb10u1.
  • Issued DLA 3129-1, fixing CVE-2019-17545 and CVE-2021-45943, for gdal.
    For Debian 10 buster, these problems have been fixed in version 2.4.0+dfsg-1+deb10u1.
  • Looked at src:mbedtls which has about 18 CVEs opened in buster (including no-dsa).
    Also, spoke to the maintainer - they said they’d be uncomfortable doing or reviewing the backport (although they initially said they’d be happy to help).
  • Fixed src:rails regression via 2:, 2:, and 2: for sid.
    CVE-2022-32224 broke the entire world. :)
  • Helped Abhijith figure out the regression fix for CVE-2022-32224.
    Also got that verified by the people who reported regression, Raphael, Sven, and Jude. The whole thread is on debian-lts@.

ELTS CVE Fixes and Announcements:

  • Rolled out announcemnet for src:ruby-tzinfo.
  • Rolled out announcemnet for src:grubt.
  • Issued ELA 682-1, fixing CVE-2022-31676, for open-vm-tools.
    For Debian 9 stretch, these problems have been fixed in version 2:10.1.5-5055683-4+deb9u3.
  • Issued ELA 691-1, fixing CVE-2020-21365, for wkhtmltopdf.
    For Debian 8 jessie, these problems have been fixed in version 0.12.1-2+deb8u1.
    For Debian 9 stretch, these problems have been fixed in version
  • Issued ELA 692-1, fixing CVE-2022-37452, for exim4.
    For Debian 8 jessie, these problems have been fixed in version 4.84.2-2+deb8u9.
    For Debian 9 stretch, these problems have been fixed in version 4.89-2+deb9u9.
  • Started to look at src:tiff again. Has a lot of open issues. Haven’t claimed the package officially yet, though. :)

Other (E)LTS Work:

  • Triaged rails, node-thenify, exim4, wkhtmltopdf, gdal, and mbedtls.
  • Marked CVE-2019-25050/gdal as not-affected for buster.
  • Marked CVE-2022-37451/exim4 as not-affected for stretch and jessie; following buster and bullseye.
  • Helped and assisted new contributors joining Freexian (LTS/ELTS).
  • Answered questions (& discussions) on IRC (#debian-lts and #debian-elts) and Matrix.
  • Participated and helped fellow members with their queries via private mail and chat.
  • General and other discussions on LTS private and public mailing list.
  • Attended the monthly public meeting held on #debian-lts on September 29th.

Until next time.
:wq for today.

on September 30, 2022 05:41 AM

September 10, 2022

I previously announced the end of new Qt5-based Grantlee releases. The Grantlee template system is to find new life as part of KDE Frameworks 6 in the form of KTextTemplate. The Grantlee textdocument library will probably become part of another KDE library with similar scope.

Meanwhile, some changes have accumulated since the last Grantlee release, so I’ve made a new release to make them available to users. Many of the changes are small, but with a few new features which were cherry-picked from the Cutelee repo.

The other significant change is that Grantlee 5.3.0 can be built with Qt 6. This is not a change of plan regarding migration to KDE Frameworks, but is intended to assist with porting existing code to Qt 6.

Speaking of new releases, we welcomed our baby into the world almost a year ago. Years ago it was a common refrain within the KDE community to new parents to remind them, tongue in cheek, to never shake the baby. I was amused to find that the advise given as a printed book to all new Irish parents reminds the same :).

on September 10, 2022 02:17 PM

August 31, 2022

So, I made a game. It’s called Farmbound. It’s a puzzle; you get a sequence of farm things — seeds, crops, knives, water — and they combine to make better items and to give you points. Knives next to crops and fields continually harvest them for points; seeds combine to make crops which combine to make fields; water and manure grow a seed into a crop and a crop into a field. Think of it like a cross between a match-3 game and Little Alchemy. The wrinkle is that the sequence of items you get is the same for the whole day: if you play again, you’ll get the same things in the same order, so you can learn and refine your strategy. It’s rather fun: give it a try.

Farmbound, on a mobile, in light mode

It’s a web app. Works for everyone. And I thought it would be useful to explain why it is, why I think that’s the way to do things, and some of the interesting parts of building an app for everyone to play which is delivered over the web rather than via app stores and downloads.

Why’s it a web app and not a platform-specific native app?

Well, there are a bunch of practical reasons. You get completely immediate play with a web app; someone taps on a share link, and they’re playing. No installation, no platform detection, it Just Works (to coin a phrase which nobody has ever used before about apps ever in the history of technology). And for something like this, an app with platform-specific code isn’t needed: sure, if you’re talking to some hardware devices, or doing low-level device fiddling or operating system integration, you might need to build and deliver something separately to each platform. But Farmbound is not that. There is nothing that Farmbound needs that requires a native app (well, nearly nothing, and see later). So it isn’t one.

There are some benefits for me as the developer, too. Such things are less important; the people playing are the important ones. But if I can make things nicer for myself without making them worse for players, then I’m going to do it. Obviously there’s only one codebase. (For platform-specific apps that can be alleviated a little with cross-platform frameworks, some of which are OK these days.) One still needs to test across platforms, though, so that’s not a huge benefit. On the other hand, I don’t have to pay extra to distribute it (beyond it being on my website, which I’d be paying for anyway), and importantly I don’t have to keep paying in order to keep my game available for ever. There’s no annual tithe required. There’s no review process. I also get support for minority platforms by publishing on the web… and I’m not really talking about something in use by a half-dozen people here. I’m talking about desktop computers. How many people building a native app, even a relatively simple puzzle game like this, make a build for iOS and Android and Windows and Mac and Linux? Not many. The web gets me all that for minimal extra work, and if someone on FreeBSD or KaiOS wants to play, they can, as long as they’ve got a modern browser. (People saying “what about those without modern browsers”… see below.)

But from a less practical and more philosophical point of view… I shouldn’t need to build a platform-specific native app to make a game like this. We want a world where anyone can build and publish an app without having to ask permission, right? I shouldn’t need to go through a review process or be beholden to someone else deciding whether to publish my game. The web works. Would Wordle have become so popular if you had to download a Windows app or wait for review before an update happened? I doubt it. I used to say that if you’re building something complex like Photoshop then maybe go native, but in a world with Figma in it, that maybe doesn’t apply any more, and so Adobe listened to that and now Photoshop is on the web. Give people a thing which doesn’t need installation, gets them playing straight away, and works everywhere? Sounds good to me. Farmbound’s a web app.

Why’s it not got its own domain, then, if it’s on the web?

Farmbound shouldn’t need its own domain, I don’t think. If people find out about it, it’ll likely be by shared links showing off how someone else did, which means they click the link. If it’s popular then it’ll be top hit for its own name (if it isn’t, the Google people need to have a serious talk with themselves), and if it isn’t popular then it doesn’t matter. And, like native app building, I don’t really want to be on the hook forever for paying for a domain; sure, it’s not much money, but it’s still annoying that I’m paying for a couple of ideas that I had a decade ago and which nobody cares about any more. I can’t drop them, because of course cool URIs don’t change, and I didn’t want to be thinking a decade from now, do I still need to pay for this?

In slightly more ego-driven terms, it being on my website means I get the credit, too. Plus, I quite like seeing things that are part of an existing site. This is what drove the (admittedly hipster-ish) rise of “tilde sites” again a few years ago; a bit of nostalgia for a long time ago. Fortunately, I’ve also got Cloudflare in front of my site, which alleviates worries I might have had about it dying under load, although check back with me again if that happens to see if it turns out to be true or not. (Also, I’m considering alternatives to Cloudflare at the moment too.)

So what was annoying and a problem when building an app on the web?


Firstly, I separated the front and back ends and deployed them in different places. I’m not all that confident that my hosted site can cope with being hammered, if I’m honest. This is alleviated somewhat by cloud caching, and hopefully quite a bit more by having a service worker in place which caches almost everything (although see below about that), but a lot of this decision was driven by not wanting to incur a server hit for every visitor every time, as much as possible. This drove at least some of the architectural decisions. The front end is on my site and is plain HTML, CSS, and JavaScript. The back end is not touched when starting the game; it’s only touched when you finish a game, in order to submit your score and get back the best score that day to see if you beat that. That back end is written in Deno, and is hosted on, who seem pretty cool. (I did look at Deno Deploy, but they don’t do permanent storage.)

Part of the reason the back end is a bit of extra work is that it verifies your submitted game to check you aren’t cheating and lying about your score. This required me to completely reimplement the game code in Deno. Now, you may be saying “what? the front end game code is in JavaScript and so is the back end? why don’t they share a library?” and the answer is, because I didn’t think of it. So I wrote the front end first and didn’t separate out the core game management from all the “animate this stuff with CSS” bits, because it was a fun weekend project done as a proof of concept. Once I got a bit further into it and realised that I should have done that… I didn’t wanna, because that would have sucked all the fun out of the project like a vampire and meant that I’d have never done it. So, take this as a lesson: think about whether you want a thing to be popular up front. Not that you’ll listen to this advice, because I never do either.

Similarly, this means that there’s less in the way of analytics, so I don’t get information about users, or real-time monitoring of popularity. This is because I did not want to add Google Analytics or similar things. No personal data about you ever leaves your device. You’ll have noticed that there’s no awful pop-up cookie consent dialogue; this is because I don’t need one, because I don’t collect any analytics data about players at all! Guess what, people who find those dialogues annoying (i.e., everyone?) You can tell companies to stop collecting data about you and then they won’t need an annoying dialogue! And when they say no… well, then you’ll have learned something about how they view you as customers, perhaps. Similarly, when scores are submitted, there’s no personal information that goes with them. I don’t even know whether two scores were submitted by the same person; there’s no unique ID per person or per device or anything. (Technically, the IP is submitted to the server, of course, but I don’t record it or use it; you’ll have to take my word for that.)

This architecture split also partially explains why the game’s JavaScript-dependent. I know, right? Me, the bloke who wrote “Everyone has JavaScript, right?“, building a thing which requires JS to run? What am I doing? Well, honestly, I don’t want to incur repeated server hits is the thing. For a real project, something which was critical, then I absolutely would do that; I have the server game simulation, and I could relatively easily have the server pass back a game state along with the HTML which was then submitted. The page is set up to work this way: the board is a <form>, the things you click on are <button>s, and so on. But I’m frightened of it getting really popular and then me getting a large bill for cloud hosting. In this particular situation and this particular project, I’d rather the thing die than do that. That’s not how I’d build something more critical, but… Farmbound’s a puzzle game. I’m OK with it not working, and if I turn out to be wrong about that, I can change that implementation relatively quickly without it being a big problem. It’s not architected in a JS-dependent way; it’s just progressively enhanced that way.

iOS browser

I had a certain amount of hassle from iOS Safari. Some of this is pretty common — how do I stop a double-tap zooming in? How do I stop the page overscrolling? — but most of the “fixes” are a combination of experimentation, cargo culting ideas off Stack Overflow, and something akin to wishing on a star. That’s all pretty irritating, although Safari is hardly alone in this. But there is a separate thing which is iOS Safari specific, which is this: I can’t sensibly present an “add this to your home screen” hint in iOS browsers other than Safari itself. In iOS Safari, I can show a little hint to help people know that they can add Farmbound to their home screen (which of course is delayed until a second game is begun and then goes away for a month if you dismiss it, because hassling your own players is a foolish thing to do). But in non Safari iOS browsers (which, lest we forget, are still Safari under the covers; see Open Web Advocacy if this is a surprise to you or if you don’t like it), I can’t sensibly present that hint. Because those non-Safari iOS browsers aren’t allowed to add web apps to your home screen at all. I can’t even give people a convenient tap to open Farmbound in iOS Safari where they can add the app to their home screen, because there’s no way of doing that. So, apologies, Chrome iOS or Firefox iOS users and others: you’ll have to open Farmbound in Safari itself if you want an easy way to come back every day. At least for now.

Service workers

And finally, and honestly most annoyingly, the service worker.

Building and debugging and testing a service worker is still so hard. Working out why this page is cached, or why it isn’t cached, or why it isn’t loading, is incredibly baffling and infuriating still, and I just don’t get it. I tried using “workbox”, but that doesn’t actually explain how to use it properly. In particular, for this use case, a completely static unchanging site, what I want is “cache this actual page and all its dependencies forever, unless there’s a change”. However, all the docs assume that I’m building an “app shell” which then uses fetch() to get data off the server repeatedly, and so won’t shut up about “network first” and “cache first, falling back” and so on rather than the “just cache it all because it’s static, and then shut up” methodology. And getting insight into why a thing loaded or didn’t is really hard! Sure, also having Cloudflare caching stuff and my browser caching stuff as well really doesn’t help here. But I am not even slightly convinced that I’ve done all this correctly, and I don’t really know how to be better. It’s too hard, still.


So that’s why Farmbound is the way it is. It’s been interesting to create, and I am very grateful to the Elite Farmbound Testing Team for a great deal of feedback and helping me refine the idea and the play: lots of love to popey, Roger, Simon, Martin, and Mark, as well as Handy Matt and my mum!

There are still some things I might do in the future (achievements? maybe), and I might change the design (I’m not great at visual design, as you can tell), and I really wish that I could have done all the animations with Shared Element Transitions because it would have been 312 times easier than the way I did it (a bunch of them add generated content and then web-animations-api move the ::before around, which I thought was quite neat but is also daft by comparison with SET). But I’m pleased with the implementation, and most importantly it’s actually fun to play. Getting over a thousand points is really good (although sometimes impossible, on some days), and I don’t really think the best strategies have been worked out yet. Is it better to make fields and tractors, or not go that far? Is water a boon or an annoyance? I’d be interested in your thoughts. Go play Farmbound, and share your results with me on Twitter!

on August 31, 2022 11:56 AM

August 27, 2022

When I began working on Ubuntu Studio, I was working for a large church. We were doing amazing things in our services every Sunday. Our video, audio, and lighting were top-notch, but the problem was that it was hard to replicate without spending thousands of dollars.

This made me frustrated when running services for our youth in the church’s youth center. I couldn’t use those same tools and didn’t have a budget to spend. This got me wondering what tools existed in the open-source world. Remembering my days of experimenting with Linux and multimedia, I remembered seeing audio plugins in Ubuntu Studio, so that was the first place I looked.

Back then, I thought, “What would it take to replace all of these Apple and Windows computers with Ubuntu Studio?” We could use that money we would otherwise spend on software, on stage lighting, projectors, and audio equipment upgrades. Unfortunately, at that time, we were missing key components. While the audio was top-notch, it was lacking a good video editor and good software for controlling DMX-based lighting. This isn’t even to mention lyric and presentation software, which couldn’t hold a candle to ProPresenter.

Fast forward to now. Just four years later, those problems are being solved. We have some amazing audio plugins, and more keep coming to the repositories. Harrison’s MixBus is one of the best Digital Audio Workstations on the market and works flawlessly. Kdenlive, the video editor we include, has matured dramatically, and keeps getting better. Besides that, BlackMagic Design’s DaVinci Resolve is easy to install. For DMX lighting, we now have Q Light Controller Plus installed by default.

Lyric projection and presentation software out there was the final piece of the puzzle. Sure, OpenLP has been out there and has matured quite well, but it remains lacking in the usability department. However, I stumbled upon one thing that made me cry nearly tears of joy when I discovered it: FreeShow.


FreeShow reminded me of ProPresenter and operates very similarly. However, in some ways, it operates easier, because to set up another display, you just need a web browser to point it at the FreeShow presentation computer’s address. Same with the stage display. This was the application I had hoped would come about years ago.

FreeShow is being developed by Kristoffer Vassbø. It’s an application written in Electron. As such, to package it for Ubuntu, I had to go a non-traditional route and package it as a snap. This way, I could include it in Ubuntu Studio and complete the last piece of the puzzle for a full, out-of-the-box multimedia production system for churches. It will be included by default in Ubuntu Studio 22.10.

With that, I hope to find a church that would be willing to try Ubuntu Studio for its multimedia production needs. This could potentially save churches thousands of dollars per year that they could use for outreach in their local area, in their local region, or even to the ends of the earth!

This might be the unique ministry that God has been calling me to my whole life that I’ve been looking for.

on August 27, 2022 10:36 PM