15 Jul 2025
OMG! Ubuntu
Plasma Bigscreen, KDE’s TV Interface, is Back on the Air
KDE's Plasma Bigscreen TV UI gets rebooted with slicker visuals, search functionality, and more - thanks to one developer tuning in to its potential.
You're reading Plasma Bigscreen, KDE's TV Interface, is Back on the Air, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
15 Jul 2025 1:57am GMT
14 Jul 2025
Planet Ubuntu
The Fridge: Ubuntu Weekly Newsletter Issue 900

Welcome to the Ubuntu Weekly Newsletter, Issue 900 for the week of July 6 - 12, 2025. The full version of this issue is available here.
In this issue we cover:
- Ubuntu 24.10 (Oracular Oriole) reached End of Life on 10th July 2025
- Welcome New Members and Developers
- Ubuntu Stats
- Hot in Support
- LXD: Weekly news #402
- Other Meeting Reports
- Upcoming Meetings and Events
- LoCo Events
- Ubuntu Project docs: welcoming our first contributions!
- Call for testing: A/B boot on Raspberry Pi
- Ubuntu Summit Extended 25.10 UK LoCo Live Stream Event
- Announcing the Multipass 1.16.0 release
- Other Community News
- Ubuntu Cloud News
- Canonical News
- In the Blogosphere
- Other Articles of Interest
- Featured Audio and Video
- Updates and Security for Ubuntu 22.04, 24.04, 24.10, and 25.04
- And much more!
The Ubuntu Weekly Newsletter is brought to you by:
- Krytarik Raido
- Bashing-om
- Chris Guiver
- Wild Man
- Din Mušić - LXD
- 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!

14 Jul 2025 10:55pm GMT
OMG! Ubuntu
Is Chrome OS Merging with Android? Apparently So
Consider this post a little apropos of nothing given that nothing has actually been formally announced yet, but it seems that long-rumoured merger of Google's two operating systems is indeed happening. Sameer Samat, who works at Google as president of the Android Ecosystem division that oversees Android, casually mentioned the merger in an interview with TechRadar, saying: "…we're going to be combining ChromeOS and Android into a single platform, and I am very interested in how people are using their laptops these days and what they're getting done." Combining operating systems would mean the end of one, since they are […]
You're reading Is Chrome OS Merging with Android? Apparently So, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
14 Jul 2025 8:01pm GMT
Ubuntu blog
What is Linux Support?
In the world of enterprise IT, "support" can mean many things. For some, it's a safety net - insurance for the day something breaks. For others, it's the difference between a minor hiccup and a full-scale outage. At Canonical, it means a simple, comprehensive subscription that takes care of everything, so that everything you build […]
14 Jul 2025 2:11pm GMT
Planet Ubuntu
Ubuntu Blog: What is Linux Support?
In the world of enterprise IT, "support" can mean many things. For some, it's a safety net - insurance for the day something breaks. For others, it's the difference between a minor hiccup and a full-scale outage. At Canonical, it means a simple, comprehensive subscription that takes care of everything, so that everything you build works the way you want it to, for all the people who love to use it.
This post demystifies what "support" means in the context of Linux support, how it differs from security maintenance, and why both are essential for modern organizations. Through real-world examples and deep dives into Canonical's support processes, you'll discover how Ubuntu Pro + Support empowers teams to build, scale, and secure their infrastructure with confidence.
Linux support vs security maintenance: why both matter
To begin, we'll briefly disambiguate two related, but distinct, concepts: security maintenance and support.
We'll use the example of Ubuntu Pro + Support to illustrate it.
- Security maintenance: Up to 12 years of security patches for over 36,000 packages, on top of kernel livepatching and compliance tooling (FIPS, CIS, DISA-STIG). This is your proactive defense, keeping systems resilient and compliant. This is the "Ubuntu Pro" part of Ubuntu Pro + Support.
- Break-fix and bug-fix support: When something goes wrong - whether it's a sudden outage, a failed upgrade, or a mysterious performance drop - our engineers are there to help you troubleshoot, resolve the issue and recover. This is the "Support" part of Ubuntu Pro + Support.
Security maintenance keeps you safe. Linux support gets you back up and running, fast. These two concepts reinforce each other, but serve different purposes.
Read more about the difference between Linux Support and Security Maintenance >
What does Ubuntu Pro + Support actually do?
The last line of defense - and the first to respond
Canonical's support team is more than a help desk. We're the people who make and maintain the software you're running. When you hit a wall - whether it's a Sev 1 outage, a subtle configuration bug, or a device-specific problem - we're always there when you need a solution. Our expertise spans every layer of the stack, from the kernel to Kubernetes, Ceph to OpenStack, from cloud and applications like PostgreSQL to Ubuntu Core and snaps.
Our team's value lies in combining deep technical Linux and Canonical products expertise with creative problem solving and cross-team collaboration.
Let's zoom in on a real-world example to see what this looks like in action.
What Linux support looks like in practice
A customer (a global SaaS provider) contacted the support team due to problems they were experiencing with a self-implemented Landscape instance in conjunction with FIPS. Landscape is Canonical's systems management tools for device fleets, and this customer was migrating to Ubuntu for cost savings and strategic alignment they needed to implement FIPS-certified cryptography at scale, using Landscape to do so.
However, as they scaled their deployment to around a thousand clients on their AWS-hosted Landscape instance, they began encountering overloads regardless of instance sizing, leading to service collapses and restarts.
Canonical's support team, including their Technical Account Manager, led a deep investigation. Working across product and engineering, we identified that the FIPS changes introduced additional overhead and random failures in Landscape. Given that compliance obligations to NIST required strict adherence to FIPS standards, we couldn't simply pause or remove the FIPS cryptography.
Instead, in a couple of days, our engineers helped the customer implement SSL termination outside of Landscape, offloading the cryptographic burden while maintaining compliance. This agile, collaborative solution allowed the customer to scale their SaaS platform on Ubuntu without having to rebuild their entire management stack. Our team upheld functionality, with no compromises on security.
Breadth of experience, depth of knowledge
Over the years, we've seen it all, and helped developers solve difficult, business-threatening, or simply irritating problems in their work and systems. We've already touched on an example related to compliance.
Let's take a look at what else we do to help when things go wrong.
Protecting thousands of VMs from global outages
One customer, running a golden Ubuntu image - a standardized, pre-configured virtual machine template used to ensure consistency across large deployments -, hit a wall when a restart script failed across a fleet of thousands of VMs.
To stop the spread, our team quickly suspended their Ubuntu Pro tokens remotely to prevent the machines from trying to get ESM updates, which would trigger the restart script. The tokens were not the issue, however this action ensured that the script stayed confined in the machines it had initially affected. Our team then worked with them to diagnose the root cause, saving hours of potential downtime and guiding them toward better fleet management practices, to prevent actions that would trigger a repeat of the issue.
Eliminating Ceph cluster latency headaches
A customer running Ceph experienced high latency in their cluster. Our support team led a multi-day investigation, and concluded that the origin was a problematic OSD (Object Storage Daemon, the core component responsible for storing data on disk and providing access to it over the network). Ceph support cases are generally lengthy and convoluted, but this customer needed improvements in a matter of days, otherwise their business would be severely impacted. The support team went above and beyond providing step-by-step instructions to replace the OSD and rebalance the cluster, offering daily check-ins, delivering improvements within a couple of days, and ultimately supporting the implementation of a sustainable fix.
Taking on long-running performance issues in the cloud
When a major performance degradation emerged after the OpenStack 2024.1 (Caracal) release, the sustaining engineering team worked for months to identify the root cause in a complex OpenStack environment. Their persistence led to an upstream fix that resolved the issue for all users, not just the original customer who flagged the issue.
Deep-dive investigations that go beyond support
In one case, a customer escalated a network performance regression on AMD CPUs, believing there to be a software issue. The sustaining engineering team spent weeks analyzing kernel versions, performance counters, and lab setups, in order to identify the origin of the regression. Ultimately, they determined that the issue was hardware-related, not a software bug. The customer was so impressed they offered direct feedback, calling the support "superb" and asking how to recommend the engineer.
Collaborative bug fixes with industry impact
When a streaming service's Ceph cluster suffered random restarts under bandwidth pressure, the sustaining engineering team worked hand-in-hand with both the customer and upstream communities. The fix not only stabilized the customer's environment, but also earned external recognition, including a Google Open Source Peer Bonus for the Canonical engineer who contributed the patch.
Beyond break-fix: preventative and strategic Linux support
Support isn't just for when things go wrong. It's for when you're doing something completely new, and need people with expertise on-hand to advise and troubleshoot issues.
Many customers open low-priority cases ahead of sensitive network changes or major upgrades. In this case, we can assign engineers with domain-specific expertise - like deep OVN knowledge for telecom customer maintenance windows - so we're ready to respond instantly if an incident occurs. It's not proactive monitoring, but it's a smarter, more prepared way to handle risk.
For example, we often field dozens of questions from customers about their devices. By attending to these small issues with the correct information, direct from engineers, we avoid bigger problems before they even begin. We go deep too: onboarding checklists, infrastructure reviews, and ongoing support ensure you're confident from day one. When you come to us with a case, we already know your environment and can dive straight into solving your problem. Whether it's a question on security and compliance, a request for new features, or a complicated operational challenge, we're here to hold your hand and provide clarity and peace of mind.
Sometimes, the solution isn't in the docs. That's when we go the extra mile: jumping on a targeted video call for rapid log collection, or collaborating with your team to design a workaround that fits your environment. For example, a customer once came to us looking to implement FIPS compliance for over a thousand clients on AWS. When SSL operations under FIPS began overloading their system, our engineers collaborated across product and support teams to devise a creative workaround: offloading SSL to a load balancer and applying a targeted hotfix. What could have taken months to resolve was fixed in a day, with minimal disruption.
We'll guide you through upgrades and migrations according to best practices, but we don't replace consulting or provide custom implementations. Clear boundaries mean you get the Linux support you expect - and nothing less.
Conclusion
Ubuntu Pro + Support is more than a break-fix hotline - it's a partnership built on real experience, deep technical knowledge, and a commitment to helping you run open source infrastructure with confidence. Whether you're facing a Sev 1 outage, a complex compliance challenge, or just need a sounding board for your next upgrade, Canonical's support team is there - with the breadth, depth, and agility that modern enterprises demand.
With Ubuntu Pro + Support, you get more than answers. You get a partner in operational excellence, a bridge to upstream innovation, and a foundation for secure, resilient, and scalable Linux infrastructure.
Get in touch now to see how we can support your specific needs >
14 Jul 2025 2:11pm GMT
Ubuntu Blog: Let’s meet at AI4 and talk about AI infrastructure with open source
Date: 11 - 13 August 2025
Booth: 353
You know the old saying: what happens in Vegas… transforms your AI journey with trusted open source. On August 11-13, Canonical is back at AI4 2025 to share the secrets of building secure, scalable AI infrastructure to accelerate every stage of your machine learning lifecycle - whether you're creating a sovereign AI cloud or deploying with hyperscalers.
Here's a taste of what you can expect if you come by booth 353.
Building AI on a solid open source foundation
Canonical is the publisher of Ubuntu, the leading Linux distribution. With over 20 years of experience maintaining open source software, we deliver the same stability and support you're familiar with from Ubuntu for your machine learning operations.
Our MLOps stack delivers all the open source solutions you need to streamline the complete machine learning lifecycle. These tools are tightly integrated to ensure a smooth MLOps journey, from experimentation to production.
- Data science stack for beginners: DSS is an easy-to-deploy solution that can run on any workstation. It allows you to set up ML environments on your AI workstation using an out-of-the-box solution for data science.
- Cloud Native MLOps: Charmed Kubeflow is our fully open source end-to-end MLOps, used to develop and deploy models at scale. It integrates with our portfolio of Data and AI applications, including MLFlow, Feast, Spark, and OpenSearch. Our platform runs on any CNCF-conformant Kubernetes, including Canonical K8s, AKS, EKS, and GKE.
- Ubuntu Core and Kserve for Edge AI: Devices at the edge often support mission critical applications and running a securely designed Operative System is crucial in order to protect all the artefacts, regardless of the architecture. We support deploying and scaling models at the edge thanks to our portable and hardened application-packaging technology and our enterpsise support for KServe.
AI infrastructure with trusted open source
This year at AI4, we'll also be showcasing how you can build your AI infrastructure with trusted open source. From sovereign cloud to public cloud, we'll demonstrate how to leverage securely designed open source building blocks for any environment.
- Build your AI sovereign cloud with fully open source technologies. Canonical enables private and air-gapped AI deployments with full control over your stack. From infrastructure to models, everything runs on securely designed, certified components - no vendor lock-in.
- Run AI workloads on any public cloud, with consistent experience and cost control. Canonical's AI stack is cloud-agnostic, optimized for all major providers. Deploy and scale with confidence - from development to production - using the same stack everywhere.
- Confidently deploy and maintain AI/ML workloads with hardened containers. We build, sign, and maintain securely designed containers for AI/ML - optimized for performance and compliance. Our long-term support and CVE patching ensure your infrastructure stays protected and up to date.
If any of these topics catch your attention, bring your questions to booth 353 where our team will be happy to explore them further and deep dive into your challenge or use case. You can pre-book some time with us via the link below.
Monarchs in the sky: building sovereign AI clouds with open source tools
As AI workloads scale and regulations tighten, organizations are under pressure to deploy machine learning with full control over data, infrastructure, and compliance. In this keynote, Stefano Fioravanzo, AI Product Manager at Canonical, will share how to build a sovereign AI cloud using Canonical's open-source MLOps platform and infrastructure stack.
By the end of the session, you will learn how to orchestrate end-to-end ML pipelines, integrate secure container technologies, and automate operations across hybrid and multi-cloud environments. We'll dive into real-world strategies for achieving data sovereignty, avoiding vendor lock-in, and running production-grade AI at scale with open source at the core.
The session is scheduled for Monday, August 11 at 3.10-3.30 pm at the MLOps& Platforms Technical Track.

To continue investigating the topic, we will run demos at our 353 booth to explore how to achieve data sovereignty in your GenAI applications with RAG. Juan Pablo Norena, our AI Field Engineer, will demonstrate how to build your open source RAG application on Ubuntu infrastructure and will walk us through:
- Efficient GPU resource management with Canonical K8s,
- Self-hosted vector database,
- Kafka streaming events on the knowledge sources,
- Local inference of LLMs at scale on Kubeflow inference services.
CocktAi4ls with Canonical
Finally, unwind Ai4 with the Ubuntu team and network with fellow open source enthusiasts and industry leaders over drinks and treats. We're holding our self-hosted event on the first evening of the conference - Monday, August 11 at 7.30pm - 9.30pm PT.
This informal gathering is a chance to connect with peers and the Ubuntu team, hear what others are building, share insights and indulge yourself with some tasty treats and refreshments. We will talk about:
- Building infrastructure that doesn't hate AI workloads
- Why open source is the friend you want in your compliance strategy
- Streamlining complex environments with open source tools
Secure your spot here: https://ubuntu.com/engage/ubuntu-canonical-event-ai4

Join us at Booth 353
We look forward to meeting old friends and new at this nexus of the global AI community. If you're attending AI4 2025 in Las Vegas, US between 11-13 August, make sure to visit booth 353!
You can also book a meeting with one of our team members in advance using the link below.
See you soon in Las Vegas and have safe travels!
14 Jul 2025 10:06am GMT
Ubuntu blog
Let’s meet at AI4 and talk about AI infrastructure with open source
Date: 11 - 13 August 2025 Booth: 353 Book a meeting You know the old saying: what happens in Vegas… transforms your AI journey with trusted open source. On August 11-13, Canonical is back at AI4 2025 to share the secrets of building secure, scalable AI infrastructure to accelerate every stage of your machine learning […]
14 Jul 2025 10:06am GMT
Canonical at RISC-V Summit China 2025
The RISC-V Summit China is an annual event that brings together the global RISC-V community - including technical, industry, domain, and ecosystem groups who define the architecture's specifications. All the experts will meet in Shanghai, China, to share technology breakthroughs, industry milestones, and case studies. Canonical is proud to sponsor the RISC-V Summit again - […]
14 Jul 2025 4:00am GMT
13 Jul 2025
OMG! Ubuntu
Rio is a Fast, WebGPU-Powered Terminal for Ubuntu
Seeking a fast, modern terminal for Ubuntu? Rio is a cross-platform, hardware-accelerated terminal emulator built in Rust with novel features.
You're reading Rio is a Fast, WebGPU-Powered Terminal for Ubuntu, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
13 Jul 2025 10:39pm GMT
11 Jul 2025
OMG! Ubuntu
Calibre 8.6.0 Delivers a Dramatic Database Speed Boost
A sizeable database performance boost is available in the latest release of open source ebook manager, view and converter Calibre, plus plenty of bug fixes.
You're reading Calibre 8.6.0 Delivers a Dramatic Database Speed Boost, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
11 Jul 2025 10:59pm GMT
Customise and Move Notifications on GNOME with this Extension
You can customise GNOME Shell notifications, including position on screen, RegEx filtering, and custom colours using the Notification Configurator extension.
You're reading Customise and Move Notifications on GNOME with this Extension, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
11 Jul 2025 3:19pm GMT
Ubuntu blog
From sales development to renewals: Mariam Tawakol’s career progression at Canonical
Career progression doesn't follow a single path - and at Canonical, we embrace that. Our culture encourages individuals to explore roles aligned with their evolving skills and interests, even if it means stepping into a completely new technical space. Internal mobility is more than just a policy here; it's something we actively support and celebrate. […]
11 Jul 2025 4:30am GMT
10 Jul 2025
OMG! Ubuntu
Ubuntu 24.04 Users Get Major Kernel, GPU Driver Update
Ubuntu 24.04 LTS users are getting a new HWE update with Linux 6.14 and Mesa 25.0, delivering a big gaming boost and support for newer hardware.
You're reading Ubuntu 24.04 Users Get Major Kernel, GPU Driver Update, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
10 Jul 2025 10:59pm GMT
Planet Ubuntu
The Fridge: Ubuntu 24.10 (Oracular Oriole) reached End of Life on 10th July 2025
This is a follow-up to the End of Life warning sent earlier to confirm that as of 10th July 2025, Ubuntu 24.10 is no longer supported. No more package updates will be accepted to 24.10, and it will be archived to old-releases.ubuntu.com in the coming weeks.
Additionally, Ubuntu Security Notices will no longer include information or updated packages for Ubuntu 24.10.
The supported upgrade path from Ubuntu 24.10 is to Ubuntu 25.04. Instructions and caveats for the upgrade may be found at:
https://help.ubuntu.com/community/PluckyUpgrades
Ubuntu 25.04 continues to be actively supported with security updates and select high-impact bug fixes. Announcements of security updates for Ubuntu releases are sent to the ubuntu-security-announce mailing list, information about which may be found at:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-security-announce
Since its launch in October 2004, Ubuntu has become one of the most highly regarded Linux distributions with millions of users in homes, schools, businesses and governments around the world. Ubuntu is Open Source software, costs nothing to download, and users are free to customise or alter their software in order to meet their needs.
Originally posted to the ubuntu-announce mailing list on Thu Jul 10 20:46:06 UTC 2025 by Utkarsh Gupta on behalf of the Ubuntu Release Team
10 Jul 2025 10:50pm GMT
OMG! Ubuntu
Mozilla VPN Linux App is Now Available on Flathub
The Mozilla VPN Client can now be installed on Linux distributions from Flathub, a change that will allow more users to access the paid VPN service.
You're reading Mozilla VPN Linux App is Now Available on Flathub, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
10 Jul 2025 3:13pm GMT
Ubuntu blog
In pursuit of quality: UX for documentation authors
Canonical's Platform Engineering team has been hard at work crafting documentation in Rockcraft and Charmcraft around native support for web app frameworks like Flask and Django. It's all part of Canonical's aim to write high quality documentation and continuously improve it over time through design and development processes. One way we improve our documentation is […]
10 Jul 2025 3:01pm GMT
Planet Ubuntu
Salih Emin: How to use an AI in terminal with free models
How would you feel if you could have access to AI models, many of which are free, directly from the comfort of your terminal?
In this article, we will explore how you can achieve this using the OpenRouter.ai platform and a simple script I've prepared, called ai.sh
(… very original… I know).
Free AI in your Terminal with OpenRouter and ai.sh
ai.sh
is a simple terminal app to use OpenRouter.ai with your personal API keys. Ask questions directly from your terminal and get AI responses instantly.
Features of ai.sh
Simple command-line interface
Secure API key and model management with
.env
fileClean output (only the AI response, no JSON clutter)
Natural language queries
Uses free Mistral model by default
Stateless design - each query is independent (no conversation history)
Important Note
This tool is designed for single-question interactions. Each time you run the script, it sends an independent query to the AI model without any memory of previous conversations. If you need multi-turn conversations with context retention, consider using the OpenRouter web interface or building a more advanced wrapper that maintains conversation history.
Prerequisites
curl
(usually pre-installed on most systems)jq
for JSON parsing
Installing jq
Ubuntu/Debian:
sudo apt install jq
CentOS/RHEL/Fedora:
sudo yum install jq
# or for newer versions:
sudo dnf install jq
macOS:
brew install jq
Windows (WSL):
sudo apt install jq
Installation
- Clone or download this repository:
git clone https://github.com/SynergOps/openrouter.ai
cd openrouter.ai
- Ensure the script is executable:
chmod +x ai.sh
- Get your OpenRouter API key:
- Go to OpenRouter.ai
- Sign up with your Github account for a free account
- Navigate to models and then the Mistral Small 3.2 24B (free)
- Click API keys section
- Generate a new API key
- Configure your API key and model:
- while you are in the openrouter folder, edit the
.env
file template and add your API key:
vim .env
- Add your API key and optionally configure the model:
# OpenRouter API Configuration
OPENROUTER_API_KEY=sk-or-v1-your-actual-api-key-here
# OpenRouter Model Configuration (optional - leave empty for default)
OPENROUTER_MODEL=
Usage
Basic Usage
./ai.sh your question here
Examples
# Ask a simple question
./ai.sh what is the meaning of life
# Ask for coding help
./ai.sh how do I create a function in Python
# Ask for a definition
./ai.sh define recursion
# Ask for a summary
./ai.sh summarize the plot of "The Hitchhiker's Guide to the Galaxy"
Sample Output
$ ./ai.sh what is the meaning of 42
The number 42 is famously known as "The Answer to the Ultimate Question of Life, the Universe, and Everything" from Douglas Adams' science fiction series "The Hitchhiker's Guide to the Galaxy."
Creating a Terminal Alias (Recommended)
For easier access, you can create an alias so you can use the script from anywhere without typing the full path:
Option 1: Temporary alias (current session only)
alias ai='/path/to/your/openrouter.ai/ai.sh'
Option 2: Permanent alias (recommended)
- For Bash users - Add to your
~/.bashrc
or~/.bash_profile
:
cd /path/to/your/openrouter.ai
echo "alias ai='$(pwd)/ai.sh'" >> ~/.bashrc
source ~/.bashrc
- For Zsh users - Add to your
~/.zshrc
:
cd /path/to/your/openrouter.ai
echo "alias ai='$(pwd)/ai.sh'" >> ~/.zshrc
source ~/.zshrc
- Manual method - Edit your shell config file:
# Open your shell config file
nano ~/.bashrc # or ~/.zshrc for Zsh users
# Add this line (replace with your actual path):
alias ai='/full/path/to/openrouter.ai/ai.sh'
# Reload your shell config
source ~/.bashrc # or source ~/.zshrc
After setting up the alias, you can use it from anywhere:
# Instead of ./ai.sh question
# Works from any directory
cd ~/Documents
ai explain machine learning
Configuration
Changing the AI Model
You can change the AI model by editing the OPENROUTER_MODEL
variable in your .env
file:
# Leave empty or unset to use the default model
OPENROUTER_MODEL=
# Or specify a different model
OPENROUTER_MODEL=qwen/qwq-32b:free
Popular free models on OpenRouter include:
mistralai/mistral-small-3.2-24b-instruct:free
(default)qwen/qwq-32b:free
deepseek/deepseek-r1-0528:free
google/gemini-2.0-flash-exp:free
Note: If OPENROUTER_MODEL
is not set or left empty, the script will use the default Mistral model.
License
This project is licensed under the Apache-2.0 license - see the LICENSE file for details.
Support
If you encounter any issues or have questions, please open an issue on GitHub.
Check also, my other projects in the download page
The post How to use an AI in terminal with free models appeared first on Utappia.
10 Jul 2025 12:21pm GMT
Ubuntu Studio: Ubuntu Studio 24.10 Has Reached End-Of-Life (EOL)
As of July 10, 2025, all flavors of Ubuntu 24.10, including Ubuntu Studio 24.10, codenamed "Oracular Oriole", have reached end-of-life (EOL). There will be no more updates of any kind, including security updates, for this release of Ubuntu.
If you have not already done so, please upgrade to Ubuntu Studio 25.10 via the instructions provided here. If you do not do so as soon as possible, you will lose the ability without additional advanced configuration.
No single release of any operating system can be supported indefinitely, and Ubuntu Studio has no exception to this rule.
Regular Ubuntu releases, meaning those that are between the Long-Term Support releases, are supported for 9 months and users are expected to upgrade after every release with a 3-month buffer following each release.
Long-Term Support releases are identified by an even numbered year-of-release and a month-of-release of April (04). Hence, the most recent Long-Term Support release is 24.04 (YY.MM = 2024.April), and the next Long-Term Support release will be 26.04 (2026.April). LTS releases for official Ubuntu flavors (not Desktop or Server which are supported for five years) are three years, meaning LTS users are expected to upgrade after every LTS release with a one-year buffer.
10 Jul 2025 12:00pm GMT
Ubuntu blog
Canonical announces Charmed Feast: A production-grade feature store for your open source MLOps stack
July 10, 2025: Today, Canonical announced the release of Charmed Feast, an enterprise solution for feature management with seamless integration with Charmed Kubeflow, Canonical's distribution of the popular open source MLOps platform. Charmed Feast provides the full breadth of the upstream Feast capabilities, adding multi-cloud capabilities, and comprehensive support. Feast is an open source operational […]
10 Jul 2025 9:00am GMT
Planet Ubuntu
Podcast Ubuntu Portugal: E355 Mil E Uma Receitas
O Diogo ficou sem voz por culpa do bacalhau, o Miguel matou um transformador, a Canonical matou o Oriole (e tem muitas receitas) e o Multipass está todo aberto. Neste episódio o Diogo conspurcou as suas mãos ao usar Chato Gê-Petas, ficámos a saber onde fica a ilha de Malta e Gozo, como os Jogos Sem Fronteiras podem salvar os Jogos de Vídeo e ainda como não ter medo de ir falar à Festa do Software Livre. Estão a usar o Ubuntu 24.10? Temos más notícias e boas notícias - quais é que querem ouvir primeiro?…
Já sabem: oiçam, subscrevam e partilhem!
- Obsoleto Fernandez: https://www.youtube.com/channel/UCbPqi74p4HjtSHkrO3hZoaQ
- Transmissor AM: https://pt.aliexpress.com/item/1005005885331540.html
- Tela de tinta electrónica: https://pt.aliexpress.com/item/32838268395.html
- Receitas da Canonical: https://www.phoronix.com/news/Canonical-2024-Annual-Report
- Fim de Vida para 24.10: https://www.omgubuntu.co.uk/2025/06/ubuntu-24-10-oracular-oriole-eol-july-2025
- Multipass Todo Open Source: https://www.phoronix.com/news/Multipass-Fully-Open-Source
- Stop Killing Games: https://www.stopkillinggames.com/
- LibreOffice na Dinamarca: https://blog.documentfoundation.org/blog/2025/07/08/danish-ministry-switching-from-microsoft-office-365-to-libreoffice/
- Festa do Software Livre, em vídeo: https://youtube.com/playlist?list=PL9yk9tkJGhrMTT2ZwFW4U2uppcAODCtCY
- Komunix: https://tuxvermelho.blogspot.com/2007/09/komunix-4-um-linux-verde.html
- Carvalhesa: https://youtu.be/31NmLxK0brM
- Avante Camarada, 1967: https://youtu.be/4cldK3X8Ghk
- Festa do Software Livre 2025, Porto, 3 a 5 de Outubro: https://festa2025.softwarelivre.eu/pt/
- Ubuntu Summit 2025, Londres, 23-24 de Outubro: https://ubuntu.com/blog/ubuntu-summit-25-10-is-coming-to-your-circle-of-friends-from-london
- LoCo PT: https://loco.ubuntu.com/teams/ubuntu-pt/
- Mastodon: https://masto.pt/@pup
- Youtube: https://youtube.com/PodcastUbuntuPortugal
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. (https://creativecommons.org/licenses/by/4.0/). 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. Os separadores de péssima qualidade foram tocados ao vivo pelo Miguel, pelo que pedimos desculpa pelos incómodos causados. 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. A arte de episódio foi criada por encomenda pela Shizamura - artista, ilustradora e autora de BD. Podem ficar a conhecer melhor a Shizamura na Ciberlândia e no seu sítio web.
10 Jul 2025 12:00am GMT
09 Jul 2025
OMG! Ubuntu
Miracle-WM 0.6 Release Brings More Refinements
Miracle-wm, a Mir-based Wayland compositor and tiling window manager, has picked up new features in its latest release. Details and how to install inside.
You're reading Miracle-WM 0.6 Release Brings More Refinements, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
09 Jul 2025 10:59pm GMT
Ubuntu is Changing the Way it Boots on Raspberry Pi
Ubuntu will use an A/B boot approach on Raspberry Pi devices to improve reliability and boot failures, albeit with a minor drawback for users.
You're reading Ubuntu is Changing the Way it Boots on Raspberry Pi, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
09 Jul 2025 8:56pm GMT
Amarok 3.3 Released with Qt 6, GStreamer Audio Engine
A new version of free music player Amarok has been released, ported to Qt 6 and no longer using the Phonon audio backend. Details on what's new inside.
You're reading Amarok 3.3 Released with Qt 6, GStreamer Audio Engine, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
09 Jul 2025 2:47pm GMT
Ubuntu blog
Raising the bar for automotive cybersecurity in open source – Canonical’s ISO/SAE 21434 certification
Cybersecurity in the automotive world isn't just a best practice anymore - it's a regulatory imperative. With vehicles becoming software-defined platforms, connected to everything from mobile phones to cloud services, the attack surface has expanded dramatically. The cybersecurity risk is serious, and concrete. And with regulations like UNECE R155 making cybersecurity compliance mandatory, the automotive […]
09 Jul 2025 9:36am GMT
08 Jul 2025
OMG! Ubuntu
Floating Mini Panel GNOME Extension Adds Auto Mode
The Floating Mini-Panel GNOME Shell extension can now be made to automatically enable of an application goes fullscreen or is maximised.
You're reading Floating Mini Panel GNOME Extension Adds Auto Mode, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
08 Jul 2025 10:25pm GMT
OBS Studio 31.1 Adds Linux Multitrack Video Support + More
Multitrack video output, Stream Delay control and hardware-acceleration in the browser source are among the newest features in OBS Studio.
You're reading OBS Studio 31.1 Adds Linux Multitrack Video Support + More, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
08 Jul 2025 7:37pm GMT
Planet Ubuntu
Scarlett Gately Moore: KDE Applications snaps 25.04.3 released, plus new snaps and fixes!

I have released 25.04.3 I have upgraded the QT6 content snap to 6.9! Fixed a bug in kde-neon* extensions with cmake prefix path.
New snaps!

Audex: A CD ripping application.

GCompris - An excellent childrens education application

Labplot - Scientific plotting

Digikam - 8.7.0 with exiftool bug fixed https://bugs.kde.org/show_bug.cgi?id=501424

Krita - 5.2.11 - Excellent Graphic art platform ( compares to Photoshop )
kgraphviewer - Graphiz .dot file viewer
I am happy to report my arm is mostly functional! Unfortunately, maintaining all these snaps is an enormous amount of work, with time I don't have! Please consider a donation for the time I should be spending job hunting / getting a website business off the ground. Thank you for your consideration!
08 Jul 2025 3:25pm GMT
Ubuntu blog
What our users make with Ubuntu Pro – Episode 1
Secure homelabs - and more - for the entire family Ubuntu Pro isn't just for enterprises - it's for the passionate community that powers and supports open source every day. From secure remote access to homelab hardening, Ubuntu Pro helps users get more from their systems, whether at work or at home. In this series, […]
08 Jul 2025 9:05am GMT
Planet Ubuntu
Stuart Langridge: Making a Discord activity with PHP
Another post in what is slowly becoming a series, after describing how to make a Discord bot with PHP; today we're looking at how to make a Discord activity the same way.
An activity is simpler than a bot; Discord activities are basically a web page which loads in an iframe, and can do what it likes in there. You're supposed to use them for games and the like, but I suspect that it might be useful to do quite a few bot-like tasks with activities instead; they take up more of your screen while you're using them, but it's much, much easier to create a user-friendly experience with an activity than it is with a bot. The user interface for bots tends to look a lot like the command line, which appeals to nerds, but having to type !mybot -opt 1 -opt 2
is incomprehensible gibberish to real people. Build a little web UI, you know it makes sense.
Anyway, I have not yet actually published one of these activities, and I suspect that there is a whole bunch of complexity around that which I'm not going to get into yet. So this will get you up and running with a Discord activity that you can test, yourself. Making it available to others is step 2: keep an eye out for a post on that.
There are lots of "frameworks" out there for building Discord activities, most of which are all about "use React!" and "have this complicated build environment!" and "deploy a node.js server!", when all you actually need is an SPA web page1, a JS library, a small PHP file, and that's it. No build step required, no deploying a node.js server, just host it in any web space that does PHP (i.e., all of them). Keep it simple, folks. Much nicer.
Step 1: set up a Discord app
To have an activity, it's gotta be tied to a Discord app. Get one of these as follows:
- Create an application at discord.com/developers/applications. Call it whatever you want
- Copy the "Application ID" from "General Information" and make a
secrets.php
file; add the application ID as$clientid = "whatever";
- In "OAuth2", "Reset Secret" under Client Secret and store it in
secrets.php
as $clientsecret - In "OAuth2", "Add Redirect": this URL doesn't get used but there has to be one, so fill it in as some URL you like (
http://127.0.0.1
works fine) - Get the URL of your activity web app (let's say it's
https://myserver/myapp/
). Under URL Mappings, addmyserver/myapp
(nohttps://
) as the Root Mapping. This tells Discord where your activity is - Under Settings, tick Enable Activities. (Also tick "iOS" and "Android" if you want it to work in the phone app)
- Under Installation > Install Link, copy the Discord Provided Link. Open it in a browser. This will switch to the Discord desktop app. Add this app to the server of your choice (not to everywhere), and choose the server you want to add it to
- In the Discord desktop client, click the Activities button (it looks like a playstation controller, at the end of the message entry textbox). Your app should now be in "Apps in this Server". Choose it and say Launch. Confirm that you're happy to trust it because you're running it for the first time
And this will then launch your activity in a window in your Discord app. It won't do anything yet because you haven't written it, but it's now loading.
Step 2: write an activity
- You'll need the Discord Embedded SDK JS library. Go off to jsdelivr and see the URL it wants you to use (at time of writing this is
https://cdn.jsdelivr.net/npm/@discord/embedded-app-sdk@2.0.0/+esm
but check). Download this URL to get a JS file, which you should call discordsdk.js. (Note: do not link to this directly. Discord activities can't download external resources without some semi-complex setup. Just download the JS file) - Now write the home page for your app -- index.php is likely to be ideal for this, because you need the client ID that you put in
secrets.php
. A very basic one, which works out who the user is, looks something like this:
<html>
<body>
I am an activity! You are <output id="username">...?</output>
<scr ipt type="module">
import {DiscordSDK} from './discordsdk.js';
const clientid = '<?php echo $clientid; ?>';
async function setup() {
const discordSdk = new DiscordSDK(clientid);
// Wait for READY payload from the discord client
await discordSdk.ready();
// Pop open the OAuth permission modal and request for access to scopes listed in scope array below
const {code} = await discordSdk.commands.authorize({
client_id: clientid,
response_type: 'code',
state: '',
prompt: 'none',
scope: ['identify'],
});
const response = await fetch('/.proxy/token.php?code=' + code);
const {access_token} = await response.json();
const auth = await discordSdk.commands.authenticate({access_token});
document.getElementById("username").textContent = auth.user.username;
/* other properties you may find useful:
server ID: discordSdk.guildId
user ID: auth.user.id
channel ID: discordSdk.channelId */
}
setup()
You will see that in the middle of this, we call token.php
to get an access token from the code
that discordSdk.commands.authorize
gives you. While the URL is /.proxy/token.php
, that's just a token.php
file right next to index.php
; the .proxy
stuff is because Discord puts all your requests through their proxy, which is OK. So you need this file to exist. Following the Discord instructions for authenticating users with OAuth, it should look something like this:
<?php
require_once("secrets.php");
$postdata = http_build_query(
array(
"client_id" => $clientid,
"client_secret" => $clientsecret,
"grant_type" => "authorization_code",
"code" => $_GET["code"]
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => [
'Content-Type: application/x-www-form-urlencoded',
'User-Agent: mybot/1.00'
],
'content' => $postdata,
'ignore_errors' => true
)
);
$context = stream_context_create($opts);
$result_json = file_get_contents('https://discord.com/api/oauth2/token', false, $context);
if ($result_json == FALSE) {
echo json_encode(array("error"=>"no response"));
die();
}
$result = json_decode($result_json, true);
if (!array_key_exists("access_token", $result)) {
error_log("Got JSON response from /token without access_token $result_json");
echo json_encode(array("error"=>"no token"));
die();
}
$access_token = $result["access_token"];
echo json_encode(array("access_token" => $access_token));
And... that's all. At this point, if you Launch your activity from Discord, it should load, and should work out who the running user is (and which channel and server they're in) and that's pretty much all you need. Hopefully that's a relatively simple way to get started.
- it's gotta be an SPA. Discord does not like it when the page navigates around ↩
08 Jul 2025 7:11am GMT
07 Jul 2025
OMG! Ubuntu
Thunderbird 140 ESR Released with New Features
Thunderbird 140 'Eclipse' is the latest ESR release of this famed open source email client. See the new features, changes and how to upgrade to it in this post.
You're reading Thunderbird 140 ESR Released with New Features, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
07 Jul 2025 9:40pm GMT
Bash 5.3 Release Adds ‘Significant’ New Features
A new version of the GNU project's Bourne Again SHell (better known to most as Bash) has been released with improvements and new features.
You're reading Bash 5.3 Release Adds 'Significant' New Features, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
07 Jul 2025 9:32pm GMT
Ubuntu blog
The State of Silicon and Devices – Q2 2025 roundup
Welcome to the Q2 2025 edition of the State of Silicon and Devices by Canonical. In this quarter, we have seen momentum accelerate in edge computing, as well as growing interest in hardware platforms designed for AI, automation, and long-term maintainability. From Ubuntu Desktop arriving on Qualcomm's Dragonwing processors, to demonstrations of RISC-V silicon running […]
07 Jul 2025 1:43pm GMT
Planet Ubuntu
Stéphane Graber: Year two of freelancing
Introduction
It was exactly two years ago today that I left my day job as Engineering Manager of LXD at Canonical and went freelance. I wrote about the one year experience last year, so here's another update for what happened since!
Zabbly

As a reminder, Zabbly is the company I created for my freelance work. Most of it is Incus related these days, though I also make and publish some mainline kernel builds, ZFS packages and OVS/OVN packages!
On top of that, Zabbly also owns my various ARIN resources (ASN, allocations, …) as well as my hosting/datacenter contracts.
Through Zabbly I offer a mix of by-the-hour consultation with varying prices depending on the urgency of the work (basic consultation, support, emergency support) as well as fixed-cost services, mostly related to Incus (infrastructure review, migration from LXD, remote or on-site trainings, …).
Zabbly is also the legal entity for donations related to my open source work, currently supporting:
- Github Sponsors: https://github.com/sponsors/stgraber
- Ko-fi: https://ko-fi.com/stgraber
- Patreon: https://patreon.com/stgraber
And lastly, Zabbly also runs a Youtube channel covering the various projects I'm involved with.
That part grew quite a bit over the past year, with subscriber count up 75%, frequent live streams and release videos. The channel is now part of the YouTube Partner program.
FuturFusion

In addition to the work I'm doing through Zabbly. I'm also the CTO and co-founder of FuturFusion.
FuturFusion is focused on providing a full private cloud solution to enterprise customers, primarily those looking for an alternative to VMware. The solution is comprised of:
- Incus clusters
- Hypervisor OS (based on Incus OS)
- Operations Center (provisioning, global inventory, update management, ..)
- Migration Manager (seamless VMware to Incus migrations)

While Zabbly is just a one person show, FuturFusion has a global team and offers 24/7 support.
All components of the FuturFusion Cloud suite are fully open-source (Apache 2.0).
FuturFusion customers get access to fully tested and supported builds of the software stack.
Incus
A lot has been going on with Incus over the past year!
Some of the main feature highlights are:
- OCI application containers support
- Automatic cluster re-balancing
- Windows support for the VM agent
- Linstor storage driver
- Network address sets
- A lot of OVN improvements (native client, ECMP for interconnect, load-balancer monitoring, ability to run isolated networks, inclusion of physical interfaces into OVN, …)
- A lot of VM improvements (OS reporting, baseline CPU calculation, console history, import of existing QCOW2/VMDK/OVA images, live-migration of VM storage, screenshot API, IOMMU support, USB virtual devices, memory hotplug, …)
We also acquired (through Zabbly) our own MAC address prefix and transitioned all our projects over to that!
The University of Texas in Austin once again decided to actively contribute to Incus, leading to dozens of contributions by students, clearing quite a bit of our feature request backlog.
And I can't talk about recent Incus work without talking about Incus OS. This is recent initiative to build our own immutable OS image, just to run Incus. It's designed to be as safe as possible and easy to operate at large scale. I recently traveled to the Linux Security Summit to talk about it.
Two more things also happened that are definitely worth mentioning, the first is the decision by TrueNAS Scale to use Incus as the built-in virtualization solution. This has introduced Incus to a LOT of new people and we're looking forward to some exciting integration work coming very soon!
The other is a significant investment from the Sovereign Tech Fund, funding quite a bit of Incus work this year, from our work on LTS bugfix releases to the aforementioned Windows agent and a major refresh of our development lab!
NorthSec

NorthSec is a yearly cybersecurity conference, CTF and training provider, usually happening in late May in Montreal, Canada. It's been operating since 2013 and is now one of the largest on-site CTF events in the world along with having a pretty sizable conference too.
There are two main Incus-related highlights for NorthSec this year.
First, all the on-site routing and compute was running on Incus OS.
This was still extremely early days with this being (as far as I know) the first deployment of Incus OS on real server hardware, but it all went off without a hitch!
The second is that we leaned very hard on Infrastructure As Code this year, especially on the CTF part of the event. All challenges this year were published through a combination of Terraform and Ansible, using their respective providers/plugins for Incus. The entire CTF could be re-deployed from scratch in less than an hour and we got to also benefit from pretty extensive CI through Github Actions.
For the next edition we're looking at moving more of the infrastructure over to Incus OS and make sure that all our Incus cluster configuration and objects are tracked in Terraform.
Conferences
Similar to last year, I've been keeping conference travel to a lower amount than I was once used to
But I still managed to make it to:
- Linux Plumbers Conference 2024 (in Vienna, Austria)
- Ran the containers & checkpoint/restore micro-conference and talked about immutable process tags
- FOSDEM 2025 (in Brussels, Belgium)
- Ran the containers devroom on Saturday and presented Incus OCI support
- Ran the kernel devroom on Sunday
- Linux Storage, Filesystem, Memory Management & BPF Summit (in Montreal, Canada)
- Linux Security Summit 2025 (in Denver, Colorado)
- Presented our work on Incus OS
This will likely be it as far as conference travel for 2025 as I don't expect to make it in person to Linux Plumbers this year, though I intend to still handle the CFP for the containers/checkpoint-restore micro-conference and attend the event remotely.
What's next
I expect the coming year to be just as busy as this past year!
Incus OS is getting close to its first beta, opening it up to wider usage and with it, more feature requests and tweaks! We've been focusing on its use for large customers that get centrally provisioned and managed, but the intent is for Incus OS to also be a great fit for the homelab environment and we have exciting plans to make that as seamless as possible!
Incus itself also keeps getting better. We have some larger new features coming up, like the ability to run OCI images in virtual machines, the aforementioned TrueNAS storage driver, a variety of OVN improvements and more!
And of course, working with my customers, both through Zabbly and at FuturFusion to support their needs and to plan for the future!
07 Jul 2025 5:11am GMT
06 Jul 2025
OMG! Ubuntu
New Linux Security Flaw Uses Initramfs to Inject Malware
A newly found security flaw in Ubuntu could allow attackers with physical access to bypass full disk encryption. Learn how the attack works.
You're reading New Linux Security Flaw Uses Initramfs to Inject Malware, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
06 Jul 2025 5:49pm GMT
05 Jul 2025
OMG! Ubuntu
Gradia Screenshot Tool Just Keeps Getting Better
Gradia makes it easy to annotate add text to screenshots in Ubuntu, and now it lets you upload them directly to image hosting sites like Imgur.
You're reading Gradia Screenshot Tool Just Keeps Getting Better, a blog post from OMG! Ubuntu. Do not reproduce elsewhere without permission.
05 Jul 2025 10:59pm GMT
04 Jul 2025
Planet Ubuntu
Podcast Ubuntu Portugal: E354 Emíl.IA
Não tivemos tempo de gravar esta semana, mas…este é o episódio que VAI REVOLUCIONAR A INDÚSTRIA DOS PAPAGAIOS ESTOCÁSTICOS! Uma revelação em primeira mão e em exclusivo explosivo.
Já sabem: oiçam, subscrevam e partilhem!
- Festa do Software Livre 2025, Porto, 3 a 5 de Outubro: https://festa2025.softwarelivre.eu/pt/
- FOSS4G Europe 2025: https://2025.europe.foss4g.org/
- Ubuntu Summit 2025, Londres, 23-24 de Outubro: https://ubuntu.com/blog/ubuntu-summit-25-10-is-coming-to-your-circle-of-friends-from-london
- LoCo PT: https://loco.ubuntu.com/teams/ubuntu-pt/
- Mastodon: https://masto.pt/@pup
- Youtube: https://youtube.com/PodcastUbuntuPortugal
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. (https://creativecommons.org/licenses/by/4.0/). 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. Os efeitos sonoros deste episódio possuem as seguintes licenças: Exclusivo Explosivo: Countdown-Boom.mp3 by Russintheus - https://freesound.org/s/165089/ - License: Creative Commons 0; Estática: Computer noise, VHF Ham radio 146.67 MHZ.wav by kb7clx - https://freesound.org/s/347524/ - License: Creative Commons 0; Geringonça: Sci-Fi Computer Ambience - Pure Data Patch by cryanrautha - https://freesound.org/s/333777/ - License: Creative Commons 0; Processamento da Emília: mechanical_calculator_looped_01 by joedeshon - https://freesound.org/s/714228/ - License: Creative Commons 0. 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. A arte de episódio foi criada por encomenda pela Shizamura - artista, ilustradora e autora de BD. Podem ficar a conhecer melhor a Shizamura na Ciberlândia e no seu sítio web.
04 Jul 2025 12:00am GMT
03 Jul 2025
Ubuntu blog
JetPack 4 EOL – how to keep your userspace secure during migration
NVIDIA JetPack 4 reached its end-of-life (EOL) in November 2024, marking the end of security updates for this widely deployed stack. JetPack 4 has driven innovation in countless devices powered by NVIDIA Jetson, serving as the foundation of edge AI production deployments across multiple sectors. But now, the absence of security maintenance creates risk for […]
03 Jul 2025 8:30am GMT
Planet Ubuntu
Stuart Langridge: A (limited) defence of footnotes
So, Jake Archibald wrote that we should "give footnotes the boot", and... I do not wholly agree. So, here are some arguments against, or at least perpendicular to. Whether this is in grateful thanks of or cold-eyed revenge about him making me drink a limoncello and Red Bull last week can remain a mystery.
Commentary about footnotes on the web tends to boil down into two categories: that they're foot, and that they're notes. Everybody1 agrees that being foot is a problem. Having a meaningless little symbol in some text which you then have to scroll down to the end of a document to understand is stupid. But, and here's the point, nobody does this. Unless a document on the web was straight up machine-converted from its prior life as a printed thing, any "footnotes" therein will have had some effort made to conceptually locate the content of the footnote inline with the text that it's footnoting. That might be a link which jumps you down to the bottom, or it might be placed at the side, or it might appear inline when clicked on, or it might appear in a popover, but the content of a "footnote" can be reached without your thread of attention being diverted from the point where you were previously2.
He's right about the numbers3 being meaningless, though, and that they're bad link text; the number "3" gives no indication of what's hidden behind it, and the analogy with "click here" as link text is a good one. We'll come back to this, but it is a correct objection.
What is a footnote, anyway?
The issue with footnotes being set off this way (that is: that they're notes) isn't, though, that it's bad (which it is), it's that the alternatives are worse, at least in some situations. A footnote is an extra bit of information which is relevant to what you're reading, but not important enough that you need to read it right now. That might be because it's explanatory (that is: it expands and enlarges on the main point being made, but isn't directly required), or because it's a reference (a citation, or a link out to where this information was found so it can be looked up later and to prove that the author didn't just make this up), or because it's commentary (where you don't want to disrupt the text that's written with additions inline, maybe because you didn't write it). Or, and this is important, because it's funnier to set it off like this. A footnote used this way is like the voice of the narrator in The Perils of Penelope Pitstop being funny about the situation. Look, I'll choose a random book from my bookshelf4, Reaper Man by Terry Pratchett.
This is done because it's funny. Alternatives... would not be funny.5
If this read:
Even the industrial-grade crystal ball was only there as a sop to her customers. Mrs Cake could actually read the future in a bowl of porridge. (It would say, for example, that you would shortly undergo a painful bowel movement.) She could have a revelation in a panful of frying bacon.
then it's too distracting, isn't it? That's giving the thing too much prominence; it derails the point and then you have to get back on board after reading it. Similarly with making it a long note via <details>
or via making it <section role="aside">
, and Jake does make the point that that's for longer notes.
Even the industrial-grade crystal ball was only there as a sop to her customers. Mrs Cake could actually read the future in a bowl of porridge.
NoteIt would say, for example, that you would shortly undergo a painful bowel movement.She could have a revelation in a panful of frying bacon.
Now, admittedly, half the reason Pratchett's footnotes are funny is because they're imitating the academic use. But the other half is that there is a place for that "voice of the narrator" to make snarky asides, and we don't really have a better way to do it.
Sometimes the parenthesis is the best way to do it. Look at the explanations of "explanatory", "reference", and "commentary" in the paragraph above about what a footnote is. They needed to be inline; the definition of what I mean by "explanatory" should be read along with the word, and you need to understand my definition to understand why I think it's important. It's directly relevant. So it's inline; you must not proceed without having read it. It's not a footnote. But that's not always the case; sometimes you want to expand on what's been written without requiring the reader to read that expansion in order to proceed. It's a help; an addition; something relevant but not too relevant. (I think this is behind the convention that footnotes are in smaller text, personally; it's a typographic convention that this represents the niggling or snarky or helpful "voice in your head", annotating the ongoing conversation. But I haven't backed this up with research or anything.)
What's the alternative?
See, this is the point. Assume for the moment that I'm right6 and that there is some need for this type of annotation -- something which is important enough to be referenced here but not important enough that you must read it to proceed. How do we represent that in a document?
Jake's approaches are all reasonable in some situations. A note section (a "sidebar", I think newspaper people would call it?) works well for long clarifying paragraphs, little biographies of a person you've referenced, or whatever. If that content is less obviously relevant then hiding it behind a collapsed revealer triangle is even better. Short stuff which is that smidge more relevant gets promoted to be entirely inline and put in brackets. Stuff which is entirely reference material (citations, for example) doesn't really need to be in text in the document at all; don't footnote your point and then make a citation which links to the source, just link the text you wrote directly to the source. That certainly is a legacy of print media. There are annoying problems with most of the alternatives (a <details>
can't go in a <p>
even if inline, which is massively infuriating; sidenotes are great on wide screens but you still need to solve this problem on narrow, so they can't be the answer alone.) You can even put the footnote text in a tooltip as well, which helps people with mouse pointers or (maybe) keyboard navigation, and is what I do right here on this site.
But... if you've got a point which isn't important enough to be inline and isn't long enough to get its own box off to the side, then it's gotta go somewhere, and if that somewhere isn't "right there inline" then it's gotta be somewhere else, and... that's what a footnote is, right? Some text elsewhere that you link to.
We can certainly take advantage of being a digital document to display the annotation inline if the user chooses to (by clicking on it or similar), or to show a popover (which paper can't do). But if the text isn't displayed to you up front, then you have to click on something to show it, and that thing you click on must not itself be distracting. That means the thing you click on must be small, and not contentful. Numbers (or little symbols) are not too bad an approach, in that light. The technical issues here are dispensed with easily enough, as Lea Verou points out: yes, put a bigger hit target around your little undistracting numbers so they're not too hard to tap on, that's important.
But as Lea goes on to say, and Jake mentioned above... how do we deal with the idea that "3" needs to be both "small and undistracting" but also "give context so it's not just a meaningless number"? This is a real problem; pretty much by definition, if your "here is something which will show you extra information" marker gives you context about what that extra information is, then it's long enough that you actually have to read it to understand the context, and therefore it's distracting.7 This isn't really a circle that can be squared: these two requirements are in opposition, and so a compromise is needed.
Lea makes the same point with "How to provide context without increasing prominence? Wrapping part of the text with a link could be a better anchor, but then how to distinguish from actual links? Perhaps we need a convention." And I agree. I think we need a convention for this. But... I think we've already got a convention, no? A little superscript number or symbol means "this is a marker for additional information, which you need to interact with8 to get that additional information". Is it a perfect convention? No: the numbers are semantically meaningless. Is there a better convention? I'm not sure there is.
An end on't
So, Jake's right: a whole bunch of things that are currently presented on the web as "here's a little (maybe clickable) number, click it to jump to the end of the document to read a thing" could be presented much better with a little thought. We web authors could do better at this. But should footnotes go away? I don't think so. Once all the cases of things that should be done better are done better, there'll still be some left. I don't hate footnotes. I do hate limoncello and Red Bull, though.
- sensible ↩
- for good implementations, anyway; if you make your footnotes a link down to the end of the document, and then don't provide a link back via either the footnote marker or by adding it to the end, then you are a bad web author and I condemn you to constantly find unpaired socks, forever ↩
- or, ye gods and little fishes, a selection of mad typographic symbols which most people can't even type and need to be copied from the web search results for "that little squiggly section thingy" ↩
- alright, I chose a random Terry Pratchett book to make the point, I admit; I'm not stupid. But it really was the closest one to hand; I didn't spend extra time looking for particularly good examples ↩
- This is basically "explaining the joke", something which squashes all the humour out of it like grapes in a press. Sorry, PTerry. ↩
- I always do ↩
- I've seen people do footnote markers which are little words rather than numbers, and it's dead annoying. I get what they're trying to do, which is to solve this context problem, but it's worse ↩
- you might 'interact' with this marker by clicking on it in a digital document, or by looking it up at the bottom of the page in a print doc, but it's all interaction ↩
03 Jul 2025 6:12am GMT
02 Jul 2025
Ubuntu blog
Source to production: Spring Boot containers made easy
This blog is contributed by Pushkar Kulkarni, a Software Engineer at Canonical. Building on the rise in popularity of Spring Boot and the 12 factor paradigm, our Java offering also includes a way to package Spring workloads in production grade, minimal, well organized containers with a single command. This way, any developer can generate production-grade […]
02 Jul 2025 2:09pm GMT
Spring support available on Ubuntu
This blog is contributed by Vladimir Petko, a Software Engineer at Canonical. The release of Plucky Puffin earlier this year introduced the availability of the devpack for Spring, a new snap that streamlines the setup of developer environments for Spring on Ubuntu. In this blog, we'll explain what devpacks are and provide an overview of […]
02 Jul 2025 9:53am GMT
30 Jun 2025
Planet Ubuntu
Colin Watson: Free software activity in June 2025
My Debian contributions this month were all sponsored by Freexian. This was a very light month; I did a few things that were easy or that seemed urgent for the upcoming trixie release, but otherwise most of my energy went into Debusine. I'll be giving a talk about that at DebConf in a couple of weeks; this is the first DebConf I'll have managed to make it to in over a decade, so I'm pretty excited.
You can also support my work directly via Liberapay or GitHub Sponsors.
PuTTY
After reading a bunch of recent discourse about X11 and Wayland, I decided to try switching my laptop (a Framework 13 AMD running Debian trixie with GNOME) over to Wayland. I don't remember why it was running X; I think I must have either inherited some configuration from my previous laptop (in which case it could have been due to anything up to ten years ago or so), or else I had some initial problem while setting up my new laptop and failed to make a note of it. Anyway, the switch was hardly noticeable, which was great.
One problem I did notice is that my preferred terminal emulator, pterm
, crashed after the upgrade. I run a slightly-modified version from git to make some small terminal emulation changes that I really must either get upstream or work out how to live without one of these days, so it took me a while to notice that it only crashed when running from the packaged version, because the crash was in code that only runs when pterm
has a set-id bit. I reported this upstream, they quickly fixed it, and I backported it to the Debian package.
groff
Upstream bug #67169 reported URLs being dropped from PDF output in some cases. I investigated the history both upstream and in Debian, identified the correct upstream patch to backport, and uploaded a fix.
libfido2
I upgraded libfido2 to 1.16.0 in experimental.
Python team
I upgraded pydantic-extra-types to a new upstream version, and fixed some resulting fallout in pendulum.
I updated python-typing-extensions in bookworm-backports, to help fix python3-tango: python3-pytango from bookworm-backports does not work (10.0.2-1~bpo12+1).
I upgraded twisted to a new upstream version in experimental.
I fixed or helped to fix a few release-critical bugs:
- pdfarranger: Fails to start: RuntimeError: context has already been set
- python-covdefaults: FTBFS: E AttributeError: type object 'Plugins' has no attribute 'load_plugins'
- python-jq: FTBFS: E ValueError: jq: error: syntax error, unexpected INVALID_CHARACTER
- python-returns: FTBFS: FAILED returns/future.py::returns.future.Future.do (fixed in python3.13, closed with no action)
30 Jun 2025 11:30pm GMT
Stéphane Graber: Announcing Incus 6.14
The Incus team is pleased to announce the release of Incus 6.14!
This is a lighter release with quite a few welcome bugfixes and performance improvements, wrapping up some of the work with the University of Texas students and adding a few smaller features.
It also fixes a couple of security issues affecting those using network ACLs on bridge networks using nftables and network isolation.

The highlights for this release are:
- S3 upload of instance and volume backups
- Customizable expiry on snapshot creation
- Alternative default expiry for manually created snapshots
- Live migration tweaks and progress reporting
- Reporting of CPU address sizes in the resources API
- Database logic moved to our code generator
The full announcement and changelog can be found here.
And for those who prefer videos, here's the release overview video:
You can take the latest release of Incus up for a spin through our online demo service at: https://linuxcontainers.org/incus/try-it/
And as always, my company is offering commercial support on Incus, ranging from by-the-hour support contracts to one-off services on things like initial migration from LXD, review of your deployment to squeeze the most out of Incus or even feature sponsorship. You'll find all details of that here: https://zabbly.com/incus
Donations towards my work on this and other open source projects is also always appreciated, you can find me on Github Sponsors, Patreon and Ko-fi.
Enjoy!
30 Jun 2025 8:15pm GMT
25 Jun 2025
Planet Ubuntu
José Antonio Rey: 2025: Finding a job, and the understanding the market
So, I've been in the job market for a bit over a year. I was part of a layoff cycle in my last company, and finding a new gig has been difficult. I haven't been able to find something as of yet, but it's been a learning curve. The market is not what it has been in the last couple of years. With AI in the mix, lots of roles have been eliminated, or have shifted towards where human intervention is needed to interpret or verify the data AI is interpreting. Job hunting is a job in an of itself, and may even take a 9 to 5 role. I know of a lot of people who have gone through the same process as myself, and wanted to share some of insights and tips from what I've learned throughout the last year.
Leveraging your network
First, and I think most important, is to understand that there's a lot of great people around that you might have worked with. You can always ask for recommendations, touch base, or even have a small chat to see how things are going on their end. Conversations can be very refreshing, and can help you get a new perspective as how the industries are shifting, where you might want to learn new skills, or how to improve your positioning in the market. Folks can talk around and see if there's additional positions where you might be a good fit, and it's always good to have a helping hand (or a few). At the end of the day, these folks are your own community. I've gotten roles in the past by being referred, and these connections have been critical for my understanding of how different businesses may approach the same problem, or even to solve internal conflicts. So, reach out to people you know!
Understanding the market
Like I mentioned in the opening paragraph, the market is evolving constantly. AI has taken a very solid role nowadays, and lots of companies ask about how you've used AI recently. Part of understanding the market is understanding the bleeding edge tools that are used to improve workflows and day-to-day efficiency. Research tools that are coming up, and that are shaping the market.
To give you an example. Haven't tried AI yet? Give it a spin, even for simple questions. Understand where it works, where it fails, and how you, as a human, can make it work for you. Get a sense of the pitfalls, and where human intervention is needed to interpret or verify the data that's in there. Like one of my former managers said, "trust, but verify". Or, you can even get to the point of not trusting the data, and sharing that as a story!
Apply thoughtfully
Someone gave me the recommendation to apply to everything that I see where I "could be a fit". While this might have its upsides, you might also end up in situations where you are not actually a fit, or where you don't know the company and what it does. Always take the time, at least a few minutes, to understand the company that you're applying for, research their values, and how they align to yours. Read about the product they're creating, selling, or offering, and see if it's a product where you could contribute your skills. Then, you can make the decision of applying. While doing this you may discover that you are applying to a position in a sector that you're not interested in, or where your skillset might not be used to its full potential. And you might be missing out on some other opportunities that are significantly more aligned to you.
Also take the time to fully review the job description. JDs are pretty descriptive, and you might stumble upon certain details that don't align with yourself, such as the salary, hours, location, or certain expectations that you might feel don't fit within the role or that you are not ready for.
Prepare for your interviews
You landed an interview - congratulations! Make sure that you've researched the company before heading in. If you've taken a look at the company and the role before applying, take a glimpse again. You might find more interesting things, and it will demonstrate that you are actually preparing yourself for the interview. Also, interviewing is a two-way street. Make sure that you have some questions at the end. Double-check the role of your interviewer in the company, and ensure that you have questions that are tailored to their particular roles. Think about what you want to get from the interview (other than the job!).
Job sourcing
There are many great job sources today - LinkedIn being the biggest of all of them. Throughout my searches I've also found weworkremotely.com and hnhiring.com are great sources. I strongly advise that you expand your search and find sources that are relevant to your particular role or industry. This has opened up a lot of opportunities for me!
Take some time for yourself
I know that having a job is important. However, it's also important to take time for yourself. Your mental health is important. You can use this time to develop some skills, play some games, take care of your garden, or even reorganize your home. Find a hobby and distract yourself every now and then. Take breaks, and ensure you're not over-stressing yourself. Read a bit about burnout, and take care of yourself, as burnout can also happen from job hunting. And if you need a breather, make sure you take one, but don't overdo it! Time is valuable, so it's all about finding the right balance.
Hopefully this is helpful for some folks that are going through my same situation. What other things have worked for you? Do you have any other tips you could share? I'd be happy to read about them! Share them with me on LinkedIn. I'm also happy to chat - you can always find me at jose@ubuntu.com.
25 Jun 2025 9:39pm GMT
19 Jun 2025
Planet Ubuntu
Jonathan Carter: My first tag2upload upload
Tag2upload?
The tag2upload service has finally gone live for Debian Developers in an open beta.
If you've never heard of tag2upload before, here is a great primer presented by Ian Jackson and prepared by Ian Jackson and Sean Whitton.
In short, the world has moved on to hosting and working with source code in Git repositories. In Debian, we work with source packages that are used to generated the binary artifacts that users know as .deb files. In Debian, there is so much tooling and culture built around this. For example, our workflow passes what we call the island test - you could take every source package in Debian along with you to an island with no Internet, and you'll still be able to rebuild or modify every package. When changing the workflows, you risk losing benefits like this, and over the years there has been a number of different ideas on how to move to a purely or partially git flow for Debian, none that really managed to gain enough momentum or project-wide support.
Tag2upload makes a lot of sense. It doesn't take away any of the benefits of the current way of working (whether technical or social), but it does make some aspects of Debian packages significantly simpler and faster. Even so, if you're a Debian Developer and more familiar with how the sausage have made, you'll have noticed that this has been a very long road for the tag2upload maintainers, they've hit multiple speed bumps since 2019, but with a lot of patience and communication and persistence from all involved (and almost even a GR), it is finally materializing.
Performing my first tag2upload
So, first, I needed to choose which package I want to upload. We're currently in hard freeze for the trixie release, so I'll look for something simple that I can upload to experimental.

I chose bundlewrap, it's quote a straightforward python package, and updates are usually just as straightforward, so it's probably a good package to work on without having to deal with extra complexities in learning how to use tag2upload.
So, I do the usual uscan and dch -i to update my package…

And then I realise that I still want to build a source package to test it in cowbuilder. Hmm, I remember that Helmut showed me that building a source package isn't necessary in sbuild, but I have a habit of breaking my sbuild configs somehow, but I guess I should revisit that.
So, I do a dpkg-buildpackage -S -sa and test it out with cowbuilder, because that's just how I roll (at least for now, fixing my local sbuild setup is yak shaving for another day, let's focus!).
I end up with a binary that looks good, so I'm satisfied that I can upload this package to the Debian archives. So, time to configure tag2upload.
The first step is to set up the webhook in Salsa. I was surprised two find two webhooks already configured:

I know of KGB that posts to IRC, didn't know that this was the mechanism it does that by before. Nice! Also don't know what the tagpending one does, I'll go look into that some other time.
Configuring a tag2upload webhook is quite simple, add a URL, call the name tag2upload, and select only tag push events:

I run the test webhook, and it returned a code 400 message about a missing 'message' header, which the documentation says is normal.
Next, I install git-debpush from experimental.
The wiki page simply states that you can use the git-debpush command to upload, but doesn't give any examples on how to use it, and its manpage doesn't either. And when I run just git-debpush I get:
jonathan@lapcloud:~/devel/debian/python-team/bundlewrap/bundlewrap-4.23.1$ git-debpush
git-debpush: check failed: upstream tag upstream/4.22.0 is not an ancestor of refs/heads/debian/master; probably a mistake ('upstream-nonancestor' check)
pristine-tar is /usr/bin/pristine-tar
git-debpush: some check(s) failed; you can pass --force to ignore them
I have no idea what that's supposed to mean. I was also not sure whether I should tag anything to begin with, or if some part of the tag2upload machinery automatically does it. I think I might have tagged debian/4.23-1 before tagging upstream/4.23 and perhaps it didn't like it, I reverted and did it the other way around and got a new error message. Progress!
jonathan@lapcloud:~/devel/debian/python-team/bundlewrap/bundlewrap-4.23.1$ git-debpush
git-debpush: could not determine the git branch layout
git-debpush: please supply a --quilt= argument
Looking at the manpage, it looks like -quilt=baredebian matches my package the best, so I try that:
jonathan@lapcloud:~/devel/debian/python-team/bundlewrap/bundlewrap-4.23.1$ git-debpush --quilt=baredebian
Enumerating objects: 70, done.
Counting objects: 100% (70/70), done.
Delta compression using up to 12 threads
Compressing objects: 100% (37/37), done.
Writing objects: 100% (37/37), 8.97 KiB | 2.99 MiB/s, done.
Total 37 (delta 30), reused 0 (delta 0), pack-reused 0 (from 0)
To salsa.debian.org:python-team/packages/bundlewrap.git
6f55d99..3d5498f debian/master -> debian/master
* [new tag] upstream/4.23.1 -> upstream/4.23.1
* [new tag] debian/4.23.1-1_exp1 -> debian/4.23.1-1_exp1
Ooh! That looked like it did something! And a minute later I received the notification of the upload in my inbox:

So, I'm not 100% sure that this makes things much easier for me than doing a dput, but, it's not any more difficult or more work either (once you know how it works), so I'll be using git-debpush from now on, and I'm sure as I get more used to the git workflow of doing things I'll understand more of the benefits. And at last, my one last use case for using FTP is now properly dead. RIP FTP :)
19 Jun 2025 7:49pm GMT